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 000000000..fe05aa22d
Binary files /dev/null and b/apps/diskover-linuxserver/logo.png differ