From 00c463799d31aecbbecd05db91a643e5684f7df5 Mon Sep 17 00:00:00 2001
From: okxlin <61420215+okxlin@users.noreply.github.com>
Date: Wed, 24 Jun 2026 19:53:41 +0800
Subject: [PATCH] Add LinuxServer Diskover adapter
---
apps/diskover-linuxserver/2.3.5/.env.sample | 6 ++
apps/diskover-linuxserver/2.3.5/data.yml | 83 ++++++++++++++++++
apps/diskover-linuxserver/2.3.5/data/.gitkeep | 0
.../2.3.5/docker-compose.yml | 54 ++++++++++++
.../2.3.5/scripts/init.sh | 4 +
.../2.3.5/scripts/uninstall.sh | 2 +
.../2.3.5/scripts/upgrade.sh | 2 +
apps/diskover-linuxserver/README.md | 44 ++++++++++
apps/diskover-linuxserver/data.yml | 30 +++++++
apps/diskover-linuxserver/latest/.env.sample | 6 ++
apps/diskover-linuxserver/latest/data.yml | 83 ++++++++++++++++++
.../diskover-linuxserver/latest/data/.gitkeep | 0
.../latest/docker-compose.yml | 54 ++++++++++++
.../latest/scripts/init.sh | 4 +
.../latest/scripts/uninstall.sh | 2 +
.../latest/scripts/upgrade.sh | 2 +
apps/diskover-linuxserver/logo.png | Bin 0 -> 2187 bytes
17 files changed, 376 insertions(+)
create mode 100644 apps/diskover-linuxserver/2.3.5/.env.sample
create mode 100644 apps/diskover-linuxserver/2.3.5/data.yml
create mode 100644 apps/diskover-linuxserver/2.3.5/data/.gitkeep
create mode 100644 apps/diskover-linuxserver/2.3.5/docker-compose.yml
create mode 100755 apps/diskover-linuxserver/2.3.5/scripts/init.sh
create mode 100755 apps/diskover-linuxserver/2.3.5/scripts/uninstall.sh
create mode 100755 apps/diskover-linuxserver/2.3.5/scripts/upgrade.sh
create mode 100644 apps/diskover-linuxserver/README.md
create mode 100644 apps/diskover-linuxserver/data.yml
create mode 100644 apps/diskover-linuxserver/latest/.env.sample
create mode 100644 apps/diskover-linuxserver/latest/data.yml
create mode 100644 apps/diskover-linuxserver/latest/data/.gitkeep
create mode 100644 apps/diskover-linuxserver/latest/docker-compose.yml
create mode 100755 apps/diskover-linuxserver/latest/scripts/init.sh
create mode 100755 apps/diskover-linuxserver/latest/scripts/uninstall.sh
create mode 100755 apps/diskover-linuxserver/latest/scripts/upgrade.sh
create mode 100644 apps/diskover-linuxserver/logo.png
diff --git a/apps/diskover-linuxserver/2.3.5/.env.sample b/apps/diskover-linuxserver/2.3.5/.env.sample
new file mode 100644
index 000000000..a6b8fe4b6
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/.env.sample
@@ -0,0 +1,6 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=80
+CONFIG_PATH=./data/config
+DATA_PATH=./data/crawl
+ES_DATA_PATH=./data/elasticsearch
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/diskover-linuxserver/2.3.5/data.yml b/apps/diskover-linuxserver/2.3.5/data.yml
new file mode 100644
index 000000000..b98515bf1
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/data.yml
@@ -0,0 +1,83 @@
+additionalProperties:
+ formFields:
+ - default: 80
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: HTTP Port
+ labelZh: HTTP 端口
+ label:
+ en: HTTP Port
+ zh: HTTP 端口
+ zh-Hant: HTTP 連接埠
+ ja: HTTP ポート
+ ko: HTTP 포트
+ ru: HTTP-порт
+ ms: Port HTTP
+ pt-br: Porta HTTP
+ required: true
+ type: number
+ rule: paramPort
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config folder path
+ labelZh: 配置文件路径
+ label:
+ en: Config folder path
+ zh: 配置文件路径
+ zh-Hant: 設定檔資料夾路徑
+ ja: 設定フォルダーのパス
+ ko: 설정 폴더 경로
+ ru: Путь к папке конфигурации
+ ms: Laluan folder konfigurasi
+ pt-br: Caminho da pasta de configuração
+ required: true
+ type: text
+ - default: ./data/crawl
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data path
+ labelZh: 数据目录
+ label:
+ en: Data path
+ zh: 数据目录
+ zh-Hant: 資料目錄
+ ja: データディレクトリ
+ ko: 데이터 디렉터리
+ ru: Каталог данных
+ ms: Laluan data
+ pt-br: Caminho de dados
+ required: true
+ type: text
+ - default: ./data/elasticsearch
+ edit: true
+ envKey: ES_DATA_PATH
+ labelEn: Elasticsearch data path
+ labelZh: Elasticsearch 数据目录
+ label:
+ en: Elasticsearch data path
+ zh: Elasticsearch 数据目录
+ zh-Hant: Elasticsearch 資料目錄
+ ja: Elasticsearch データディレクトリ
+ ko: Elasticsearch 데이터 디렉터리
+ ru: Каталог данных Elasticsearch
+ ms: Laluan data Elasticsearch
+ pt-br: Caminho de dados Elasticsearch
+ required: true
+ type: text
+ - default: Asia/Shanghai
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time zone
+ labelZh: 时区
+ label:
+ en: Time zone
+ zh: 时区
+ zh-Hant: 時區
+ ja: タイムゾーン
+ ko: 시간대
+ ru: Часовой пояс
+ ms: Zon waktu
+ pt-br: Fuso horário
+ required: true
+ type: text
diff --git a/apps/diskover-linuxserver/2.3.5/data/.gitkeep b/apps/diskover-linuxserver/2.3.5/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/diskover-linuxserver/2.3.5/docker-compose.yml b/apps/diskover-linuxserver/2.3.5/docker-compose.yml
new file mode 100644
index 000000000..2c8e9e0da
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/docker-compose.yml
@@ -0,0 +1,54 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ diskover:
+ image: "linuxserver/diskover:2.3.5"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:80"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DATA_PATH}:/data"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - ES_HOST=diskover-elasticsearch
+ - ES_PORT=9200
+ mem_limit: 4096m
+ depends_on:
+ - diskover-elasticsearch
+ labels:
+ createdBy: "Apps"
+ diskover-elasticsearch:
+ image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.22"
+ restart: always
+ networks:
+ - 1panel-network
+ depends_on:
+ - diskover-elasticsearch-helper
+ environment:
+ - discovery.type=single-node
+ - xpack.security.enabled=false
+ - bootstrap.memory_lock=true
+ - ES_JAVA_OPTS=-Xms1g -Xmx1g
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
+ volumes:
+ - "${ES_DATA_PATH}:/usr/share/elasticsearch/data"
+ labels:
+ createdBy: "Apps"
+ diskover-elasticsearch-helper:
+ image: "alpine:3.20"
+ command: sh -c "sysctl -w vm.max_map_count=262144"
+ privileged: true
+ networks:
+ - 1panel-network
+ labels:
+ createdBy: "Apps"
diff --git a/apps/diskover-linuxserver/2.3.5/scripts/init.sh b/apps/diskover-linuxserver/2.3.5/scripts/init.sh
new file mode 100755
index 000000000..c3baebd28
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/crawl ./data/elasticsearch
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/diskover-linuxserver/2.3.5/scripts/uninstall.sh b/apps/diskover-linuxserver/2.3.5/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/diskover-linuxserver/2.3.5/scripts/upgrade.sh b/apps/diskover-linuxserver/2.3.5/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/diskover-linuxserver/2.3.5/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/diskover-linuxserver/README.md b/apps/diskover-linuxserver/README.md
new file mode 100644
index 000000000..237a6c6c0
--- /dev/null
+++ b/apps/diskover-linuxserver/README.md
@@ -0,0 +1,44 @@
+# Diskover LinuxServer
+
+## 产品介绍
+
+Diskover LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/diskover` 镜像,提供 Diskover 文件系统索引与搜索 能力。
+
+## 主要功能
+
+- 提供 文件系统索引与 Web 检索 能力
+- 持久化保存配置和业务数据
+- 使用安装表单配置服务端口和数据路径
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 HTTP 端口访问 Diskover Web UI。默认账号为 diskover,密码为 darkdata。
+
+## 运行说明
+
+该应用随包启动 Elasticsearch 7.17.22。根据 LinuxServer 官方 compose 示例,安装时会运行一个短生命周期的 privileged helper,用于设置 `vm.max_map_count=262144`,满足 Elasticsearch 启动要求。
+
+## Introduction
+
+Diskover LinuxServer uses the LinuxServer.io maintained `linuxserver/diskover` image for filesystem indexing and web search.
+
+## Features
+
+- Provide filesystem indexing and web search
+- Persist configuration and application data
+- Configure service ports and data paths from the install form
+- Configure the container time zone
+
+## Access
+
+After installation, open Diskover from the HTTP port. The default username is diskover and the password is darkdata.
+
+## Runtime Notes
+
+This package starts Elasticsearch 7.17.22 alongside Diskover. Following the LinuxServer official compose example, installation runs a short-lived privileged helper to set `vm.max_map_count=262144`, which Elasticsearch requires at startup.
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/diskover-linuxserver/data.yml b/apps/diskover-linuxserver/data.yml
new file mode 100644
index 000000000..005cb53e1
--- /dev/null
+++ b/apps/diskover-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Diskover LinuxServer
+tags:
+- Storage
+title: Diskover 文件系统索引与搜索
+description: Diskover 文件系统索引与搜索
+additionalProperties:
+ key: diskover-linuxserver
+ name: Diskover LinuxServer
+ tags:
+ - Storage
+ shortDescZh: Diskover 文件系统索引与搜索
+ shortDescEn: Filesystem indexer maintained by LinuxServer.io
+ description:
+ en: Filesystem indexer maintained by LinuxServer.io
+ zh: Diskover 文件系统索引与搜索
+ zh-Hant: Diskover 檔案系統索引與搜尋
+ ja: LinuxServer.io が保守するファイルシステムインデクサー
+ ko: LinuxServer.io에서 유지 관리하는 파일 시스템 인덱서
+ ru: Индексатор файловой системы, поддерживаемый LinuxServer.io
+ ms: Pengindeks sistem fail yang diselenggara oleh LinuxServer.io
+ pt-br: Indexador de sistema de arquivos mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://github.com/diskoverdata/diskover-community
+ github: https://github.com/linuxserver/docker-diskover
+ document: https://docs.linuxserver.io/images/docker-diskover/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/diskover-linuxserver/latest/.env.sample b/apps/diskover-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..a6b8fe4b6
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/.env.sample
@@ -0,0 +1,6 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=80
+CONFIG_PATH=./data/config
+DATA_PATH=./data/crawl
+ES_DATA_PATH=./data/elasticsearch
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/diskover-linuxserver/latest/data.yml b/apps/diskover-linuxserver/latest/data.yml
new file mode 100644
index 000000000..b98515bf1
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/data.yml
@@ -0,0 +1,83 @@
+additionalProperties:
+ formFields:
+ - default: 80
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: HTTP Port
+ labelZh: HTTP 端口
+ label:
+ en: HTTP Port
+ zh: HTTP 端口
+ zh-Hant: HTTP 連接埠
+ ja: HTTP ポート
+ ko: HTTP 포트
+ ru: HTTP-порт
+ ms: Port HTTP
+ pt-br: Porta HTTP
+ required: true
+ type: number
+ rule: paramPort
+ - default: ./data/config
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config folder path
+ labelZh: 配置文件路径
+ label:
+ en: Config folder path
+ zh: 配置文件路径
+ zh-Hant: 設定檔資料夾路徑
+ ja: 設定フォルダーのパス
+ ko: 설정 폴더 경로
+ ru: Путь к папке конфигурации
+ ms: Laluan folder konfigurasi
+ pt-br: Caminho da pasta de configuração
+ required: true
+ type: text
+ - default: ./data/crawl
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data path
+ labelZh: 数据目录
+ label:
+ en: Data path
+ zh: 数据目录
+ zh-Hant: 資料目錄
+ ja: データディレクトリ
+ ko: 데이터 디렉터리
+ ru: Каталог данных
+ ms: Laluan data
+ pt-br: Caminho de dados
+ required: true
+ type: text
+ - default: ./data/elasticsearch
+ edit: true
+ envKey: ES_DATA_PATH
+ labelEn: Elasticsearch data path
+ labelZh: Elasticsearch 数据目录
+ label:
+ en: Elasticsearch data path
+ zh: Elasticsearch 数据目录
+ zh-Hant: Elasticsearch 資料目錄
+ ja: Elasticsearch データディレクトリ
+ ko: Elasticsearch 데이터 디렉터리
+ ru: Каталог данных Elasticsearch
+ ms: Laluan data Elasticsearch
+ pt-br: Caminho de dados Elasticsearch
+ required: true
+ type: text
+ - default: Asia/Shanghai
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time zone
+ labelZh: 时区
+ label:
+ en: Time zone
+ zh: 时区
+ zh-Hant: 時區
+ ja: タイムゾーン
+ ko: 시간대
+ ru: Часовой пояс
+ ms: Zon waktu
+ pt-br: Fuso horário
+ required: true
+ type: text
diff --git a/apps/diskover-linuxserver/latest/data/.gitkeep b/apps/diskover-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/diskover-linuxserver/latest/docker-compose.yml b/apps/diskover-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..11a40d57b
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,54 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ diskover:
+ image: "linuxserver/diskover:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:80"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DATA_PATH}:/data"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - ES_HOST=diskover-elasticsearch
+ - ES_PORT=9200
+ mem_limit: 4096m
+ depends_on:
+ - diskover-elasticsearch
+ labels:
+ createdBy: "Apps"
+ diskover-elasticsearch:
+ image: "docker.elastic.co/elasticsearch/elasticsearch:7.17.22"
+ restart: always
+ networks:
+ - 1panel-network
+ depends_on:
+ - diskover-elasticsearch-helper
+ environment:
+ - discovery.type=single-node
+ - xpack.security.enabled=false
+ - bootstrap.memory_lock=true
+ - ES_JAVA_OPTS=-Xms1g -Xmx1g
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
+ volumes:
+ - "${ES_DATA_PATH}:/usr/share/elasticsearch/data"
+ labels:
+ createdBy: "Apps"
+ diskover-elasticsearch-helper:
+ image: "alpine:3.20"
+ command: sh -c "sysctl -w vm.max_map_count=262144"
+ privileged: true
+ networks:
+ - 1panel-network
+ labels:
+ createdBy: "Apps"
diff --git a/apps/diskover-linuxserver/latest/scripts/init.sh b/apps/diskover-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..c3baebd28
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/crawl ./data/elasticsearch
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/diskover-linuxserver/latest/scripts/uninstall.sh b/apps/diskover-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/diskover-linuxserver/latest/scripts/upgrade.sh b/apps/diskover-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/diskover-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/diskover-linuxserver/logo.png b/apps/diskover-linuxserver/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe05aa22db5dd232e1ce0ab2baebe27b4dea6e17
GIT binary patch
literal 2187
zcmah~c{r5o8~&m+O+^}IJCdD2yCKvLqzy8IwXs9BX4=CbIM!BU`9Y
zmTWDkEXUZ#GQ`Amj5(IWFqrenb(^X>u4U0R;fy
zu$d{^8l0E2s`C~
zRnWY>z0Lc3fcziZ-`dVBEbFy4uMJ3Olo}(`6U;+*zFX6P^7_o=5-?pqZf!
zu)#FeBR{**j$<*u47<5?Sf5Qb4p%qKR7iv>Jl0k(OTMl7xY}$(^{~&ZAf1=C@_{Ha
z0(rYS|50XkY&M~@LqeapFcu;o?jjcbpQwvUNJ!Wd-fA2(WooYv5&+>gP*bPCV8>C=Meo3(K>NwslW^E)COQqUA2ZnVg*)@hqw
zEJ^{Gj60AMbzW%0#z2*tijO9IFxod!EH^T`@zu^!%Vk
zR^M(5sJ^3nuIKgOoSi&LNMo#sTS$VsWtj`CbF$l`cHEh6T^2=SNUKl
zjH#cObEX^6)ze{3wO1j4vtwX8O9PgB(>_xXPF?rWU*wwW*9__jJb&J(lAkNIM>ku{
zjUaf{0;}?CvQ^%Z5=eOROGPw1k^GYrDbpIti>lS3C)O#BNh`x3iu+D}A&_`Xf|obx
zVHnW!%el7AlY^A;_MF&2z#uaN33NQSv?ae(!lemTsVD>QU2>H&7{Wk`hyBPL!xt)?
zUV_1D{!H3ue>JWclW}mab+Y6dO%ymzxGPl@hT7}zLL9j}p)6H|t^o{L(O;~&&URDr
zcuMR`vDkCtIikwkp&q&A_m`9R0arXfL5mO*#lF{cxup0wM>PzkM*-3!IZx+P6dy!YT@~0K<^yKUy?Jkh=6N?d
zSDx6R@XfRof(P8ltl#t@6_IsO3#oF8TndvmFhu=YJibx?KrWDK+Yqmpw`Wq7O>gE+
zCY?@N3rDb@ZE*yK#l)*ZLeuabh5VwAfE!L%S(unEe~vu=S6}*ouPj%`okrk)0ha=z
z7F26EzYh!y(1FdZ(s%mZ;jJY#tNAU?uEcfxex|lOru1UPagwQU2010O9Ir51hql1-
z1z=F=))+-Mqx!jth6dB?VZdbJhvtP-32+&*T=`p$`C=!P5auyNkrf@?K2n5M3Yz0x
z+F15>=5*2+%FbuC+K6m;LJPyC+%d?DmM-p_oaq~P{!VG%kT!E$Z}LwDgW(PMsa}vi
zqpH6t*)rNQxV>~-ERmRXVq7K!NH)ljN25!6`f&0U6)PBSvFf#Gq74~Use2dya3vvu
z`4-2$4bi0|Z_XN2;%ici9=B)MKOIfBC^+eL^jZ==J^73)gK#THQ?hRAHHO`|IhVGM
zaO?COMvP{K4taFRtJNkLPV?-ues-F@UY8@GP&vp9cy4B^@?YP
z3PlHLqAgFFFKmVGan`m^5bTUiwFj@Y!j6ntV^lw-OzfhgO%a?=&CUsJMln1fJYcaE
zT^vWVg&d{U?LAWH`_+kAWQkL`m(Mo=w0x~VesyI9n5PjgJZ%_v!VRKPB>con|ZTIiLen@lg(9vJLezY#c-wEXeL
zIcX`&E$+la?#!FFndaWE-doq$n-ESDrKsTYrBD-ULtk$1YH!$80=smrf&DB=a8;}2
h?4fu6jZP?!pL*ihiv>Te58yKjm>F53D-4|@{sM7~M5F)!
literal 0
HcmV?d00001