diff --git a/apps/calibre-web-linuxserver/0.6.26/.env.sample b/apps/calibre-web-linuxserver/0.6.26/.env.sample
new file mode 100644
index 000000000..642afdf50
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/.env.sample
@@ -0,0 +1,5 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8083
+CONFIG_PATH=./data/config
+BOOKS_PATH=./data/books
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/calibre-web-linuxserver/0.6.26/data.yml b/apps/calibre-web-linuxserver/0.6.26/data.yml
new file mode 100644
index 000000000..873582ce3
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/data.yml
@@ -0,0 +1,67 @@
+additionalProperties:
+ formFields:
+ - default: 8083
+ 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/books
+ edit: true
+ envKey: BOOKS_PATH
+ labelEn: Books path
+ labelZh: 图书目录
+ label:
+ en: Books path
+ zh: 图书目录
+ zh-Hant: 圖書目錄
+ ja: 書籍ディレクトリ
+ ko: 도서 디렉터리
+ ru: Каталог книг
+ ms: Laluan buku
+ pt-br: Caminho de livros
+ 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/calibre-web-linuxserver/0.6.26/data/.gitkeep b/apps/calibre-web-linuxserver/0.6.26/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/calibre-web-linuxserver/0.6.26/docker-compose.yml b/apps/calibre-web-linuxserver/0.6.26/docker-compose.yml
new file mode 100644
index 000000000..409bc20bc
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/docker-compose.yml
@@ -0,0 +1,21 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ calibre-web:
+ image: "linuxserver/calibre-web:0.6.26"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8083"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${BOOKS_PATH}:/books"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/calibre-web-linuxserver/0.6.26/scripts/init.sh b/apps/calibre-web-linuxserver/0.6.26/scripts/init.sh
new file mode 100755
index 000000000..6e55b2967
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/books
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/calibre-web-linuxserver/0.6.26/scripts/uninstall.sh b/apps/calibre-web-linuxserver/0.6.26/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/calibre-web-linuxserver/0.6.26/scripts/upgrade.sh b/apps/calibre-web-linuxserver/0.6.26/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/calibre-web-linuxserver/0.6.26/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/calibre-web-linuxserver/README.md b/apps/calibre-web-linuxserver/README.md
new file mode 100644
index 000000000..78a8d1eb8
--- /dev/null
+++ b/apps/calibre-web-linuxserver/README.md
@@ -0,0 +1,32 @@
+# Calibre-Web LinuxServer
+
+## 产品介绍
+
+Calibre-Web LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/calibre-web` 镜像,提供 Calibre-Web 电子书管理 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 ebook library management 配置
+- 持久化保存配置和业务数据
+- 使用 8083 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+Calibre-Web LinuxServer uses the LinuxServer.io maintained `linuxserver/calibre-web` image for ebook library management.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 8083
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/calibre-web-linuxserver/data.yml b/apps/calibre-web-linuxserver/data.yml
new file mode 100644
index 000000000..9ea015ffa
--- /dev/null
+++ b/apps/calibre-web-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Calibre-Web LinuxServer
+tags:
+- Media
+title: Calibre-Web 电子书管理
+description: Calibre-Web 电子书管理
+additionalProperties:
+ key: calibre-web-linuxserver
+ name: Calibre-Web LinuxServer
+ tags:
+ - Media
+ shortDescZh: Calibre-Web 电子书管理
+ shortDescEn: Ebook library web interface maintained by LinuxServer.io
+ description:
+ en: Ebook library web interface maintained by LinuxServer.io
+ zh: Calibre-Web 电子书管理
+ zh-Hant: Calibre-Web 電子書管理
+ ja: LinuxServer.io が保守する電子書籍ライブラリ Web インターフェース
+ ko: LinuxServer.io에서 유지 관리하는 전자책 라이브러리 웹 인터페이스
+ ru: Веб-интерфейс электронной библиотеки, поддерживаемый LinuxServer.io
+ ms: Antara muka web pustaka ebook yang diselenggara oleh LinuxServer.io
+ pt-br: Interface web de biblioteca de ebooks mantida pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://github.com/janeczku/calibre-web
+ github: https://github.com/linuxserver/docker-calibre-web
+ document: https://docs.linuxserver.io/images/docker-calibre-web/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/calibre-web-linuxserver/latest/.env.sample b/apps/calibre-web-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..642afdf50
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/.env.sample
@@ -0,0 +1,5 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8083
+CONFIG_PATH=./data/config
+BOOKS_PATH=./data/books
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/calibre-web-linuxserver/latest/data.yml b/apps/calibre-web-linuxserver/latest/data.yml
new file mode 100644
index 000000000..873582ce3
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/data.yml
@@ -0,0 +1,67 @@
+additionalProperties:
+ formFields:
+ - default: 8083
+ 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/books
+ edit: true
+ envKey: BOOKS_PATH
+ labelEn: Books path
+ labelZh: 图书目录
+ label:
+ en: Books path
+ zh: 图书目录
+ zh-Hant: 圖書目錄
+ ja: 書籍ディレクトリ
+ ko: 도서 디렉터리
+ ru: Каталог книг
+ ms: Laluan buku
+ pt-br: Caminho de livros
+ 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/calibre-web-linuxserver/latest/data/.gitkeep b/apps/calibre-web-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/calibre-web-linuxserver/latest/docker-compose.yml b/apps/calibre-web-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..db1f7f6bb
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,21 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ calibre-web:
+ image: "linuxserver/calibre-web:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8083"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${BOOKS_PATH}:/books"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/calibre-web-linuxserver/latest/scripts/init.sh b/apps/calibre-web-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..6e55b2967
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/books
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/calibre-web-linuxserver/latest/scripts/uninstall.sh b/apps/calibre-web-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/calibre-web-linuxserver/latest/scripts/upgrade.sh b/apps/calibre-web-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/calibre-web-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/calibre-web-linuxserver/logo.png b/apps/calibre-web-linuxserver/logo.png
new file mode 100644
index 000000000..74264dea8
Binary files /dev/null and b/apps/calibre-web-linuxserver/logo.png differ
diff --git a/apps/duplicati-linuxserver/2.3.0/.env.sample b/apps/duplicati-linuxserver/2.3.0/.env.sample
new file mode 100644
index 000000000..50f804c9c
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/.env.sample
@@ -0,0 +1,7 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8200
+CONFIG_PATH=./data/config
+BACKUPS_PATH=./data/backups
+SOURCE_PATH=./data/source
+SETTINGS_ENCRYPTION_KEY=replace-with-a-random-settings-key
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/duplicati-linuxserver/2.3.0/data.yml b/apps/duplicati-linuxserver/2.3.0/data.yml
new file mode 100644
index 000000000..8fee28920
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/data.yml
@@ -0,0 +1,100 @@
+additionalProperties:
+ formFields:
+ - default: 8200
+ 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/backups
+ edit: true
+ envKey: BACKUPS_PATH
+ labelEn: Backups path
+ labelZh: 备份目录
+ label:
+ en: Backups path
+ zh: 备份目录
+ zh-Hant: 備份目錄
+ ja: バックアップディレクトリ
+ ko: 백업 디렉터리
+ ru: Каталог резервных копий
+ ms: Laluan sandaran
+ pt-br: Caminho de backups
+ required: true
+ type: text
+ - default: ./data/source
+ edit: true
+ envKey: SOURCE_PATH
+ labelEn: Source path
+ labelZh: 源数据目录
+ label:
+ en: Source path
+ zh: 源数据目录
+ zh-Hant: 來源資料目錄
+ ja: ソースディレクトリ
+ ko: 원본 디렉터리
+ ru: Исходный каталог
+ ms: Laluan sumber
+ pt-br: Caminho de origem
+ required: true
+ type: text
+ - default: ''
+ edit: true
+ envKey: SETTINGS_ENCRYPTION_KEY
+ labelEn: Settings encryption key
+ labelZh: 设置加密密钥
+ label:
+ en: Settings encryption key
+ zh: 设置加密密钥
+ zh-Hant: 設定加密金鑰
+ ja: 設定暗号化キー
+ ko: 설정 암호화 키
+ ru: Ключ шифрования настроек
+ ms: Kunci penyulitan tetapan
+ pt-br: Chave de criptografia das configuracoes
+ required: true
+ type: password
+ rule: paramComplexity
+ - 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/duplicati-linuxserver/2.3.0/data/.gitkeep b/apps/duplicati-linuxserver/2.3.0/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/duplicati-linuxserver/2.3.0/docker-compose.yml b/apps/duplicati-linuxserver/2.3.0/docker-compose.yml
new file mode 100644
index 000000000..9e6329822
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/docker-compose.yml
@@ -0,0 +1,23 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ duplicati:
+ image: "linuxserver/duplicati:2.3.0"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8200"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${BACKUPS_PATH}:/backups"
+ - "${SOURCE_PATH}:/source"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - SETTINGS_ENCRYPTION_KEY=${SETTINGS_ENCRYPTION_KEY}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/duplicati-linuxserver/2.3.0/scripts/init.sh b/apps/duplicati-linuxserver/2.3.0/scripts/init.sh
new file mode 100755
index 000000000..f14148819
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/backups ./data/source
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/duplicati-linuxserver/2.3.0/scripts/uninstall.sh b/apps/duplicati-linuxserver/2.3.0/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/duplicati-linuxserver/2.3.0/scripts/upgrade.sh b/apps/duplicati-linuxserver/2.3.0/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/duplicati-linuxserver/2.3.0/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/duplicati-linuxserver/README.md b/apps/duplicati-linuxserver/README.md
new file mode 100644
index 000000000..ca5afbac0
--- /dev/null
+++ b/apps/duplicati-linuxserver/README.md
@@ -0,0 +1,32 @@
+# Duplicati LinuxServer
+
+## 产品介绍
+
+Duplicati LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/duplicati` 镜像,提供 Duplicati 备份管理 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 backup management 配置
+- 持久化保存配置和业务数据
+- 使用 8200 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+Duplicati LinuxServer uses the LinuxServer.io maintained `linuxserver/duplicati` image for backup management.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 8200
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/duplicati-linuxserver/data.yml b/apps/duplicati-linuxserver/data.yml
new file mode 100644
index 000000000..1a6e27000
--- /dev/null
+++ b/apps/duplicati-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Duplicati LinuxServer
+tags:
+- Storage
+title: Duplicati 备份管理
+description: Duplicati 备份管理
+additionalProperties:
+ key: duplicati-linuxserver
+ name: Duplicati LinuxServer
+ tags:
+ - Storage
+ shortDescZh: Duplicati 备份管理
+ shortDescEn: Backup manager maintained by LinuxServer.io
+ description:
+ en: Backup manager maintained by LinuxServer.io
+ zh: Duplicati 备份管理
+ zh-Hant: Duplicati 備份管理
+ ja: LinuxServer.io が保守するバックアップ管理ツール
+ ko: LinuxServer.io에서 유지 관리하는 백업 관리자
+ ru: Менеджер резервного копирования, поддерживаемый LinuxServer.io
+ ms: Pengurus sandaran yang diselenggara oleh LinuxServer.io
+ pt-br: Gerenciador de backups mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://www.duplicati.com/
+ github: https://github.com/linuxserver/docker-duplicati
+ document: https://docs.linuxserver.io/images/docker-duplicati/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/duplicati-linuxserver/latest/.env.sample b/apps/duplicati-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..50f804c9c
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/.env.sample
@@ -0,0 +1,7 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8200
+CONFIG_PATH=./data/config
+BACKUPS_PATH=./data/backups
+SOURCE_PATH=./data/source
+SETTINGS_ENCRYPTION_KEY=replace-with-a-random-settings-key
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/duplicati-linuxserver/latest/data.yml b/apps/duplicati-linuxserver/latest/data.yml
new file mode 100644
index 000000000..8fee28920
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/data.yml
@@ -0,0 +1,100 @@
+additionalProperties:
+ formFields:
+ - default: 8200
+ 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/backups
+ edit: true
+ envKey: BACKUPS_PATH
+ labelEn: Backups path
+ labelZh: 备份目录
+ label:
+ en: Backups path
+ zh: 备份目录
+ zh-Hant: 備份目錄
+ ja: バックアップディレクトリ
+ ko: 백업 디렉터리
+ ru: Каталог резервных копий
+ ms: Laluan sandaran
+ pt-br: Caminho de backups
+ required: true
+ type: text
+ - default: ./data/source
+ edit: true
+ envKey: SOURCE_PATH
+ labelEn: Source path
+ labelZh: 源数据目录
+ label:
+ en: Source path
+ zh: 源数据目录
+ zh-Hant: 來源資料目錄
+ ja: ソースディレクトリ
+ ko: 원본 디렉터리
+ ru: Исходный каталог
+ ms: Laluan sumber
+ pt-br: Caminho de origem
+ required: true
+ type: text
+ - default: ''
+ edit: true
+ envKey: SETTINGS_ENCRYPTION_KEY
+ labelEn: Settings encryption key
+ labelZh: 设置加密密钥
+ label:
+ en: Settings encryption key
+ zh: 设置加密密钥
+ zh-Hant: 設定加密金鑰
+ ja: 設定暗号化キー
+ ko: 설정 암호화 키
+ ru: Ключ шифрования настроек
+ ms: Kunci penyulitan tetapan
+ pt-br: Chave de criptografia das configuracoes
+ required: true
+ type: password
+ rule: paramComplexity
+ - 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/duplicati-linuxserver/latest/data/.gitkeep b/apps/duplicati-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/duplicati-linuxserver/latest/docker-compose.yml b/apps/duplicati-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..a0a25bd59
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,23 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ duplicati:
+ image: "linuxserver/duplicati:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8200"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${BACKUPS_PATH}:/backups"
+ - "${SOURCE_PATH}:/source"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ - SETTINGS_ENCRYPTION_KEY=${SETTINGS_ENCRYPTION_KEY}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/duplicati-linuxserver/latest/scripts/init.sh b/apps/duplicati-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..f14148819
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/backups ./data/source
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/duplicati-linuxserver/latest/scripts/uninstall.sh b/apps/duplicati-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/duplicati-linuxserver/latest/scripts/upgrade.sh b/apps/duplicati-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/duplicati-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/duplicati-linuxserver/logo.png b/apps/duplicati-linuxserver/logo.png
new file mode 100644
index 000000000..f764be3b9
Binary files /dev/null and b/apps/duplicati-linuxserver/logo.png differ
diff --git a/apps/radarr-linuxserver/6.2.1/.env.sample b/apps/radarr-linuxserver/6.2.1/.env.sample
new file mode 100644
index 000000000..415060a01
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/.env.sample
@@ -0,0 +1,6 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=7878
+CONFIG_PATH=./data/config
+MOVIES_PATH=./data/movies
+DOWNLOADS_PATH=./data/downloads
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/radarr-linuxserver/6.2.1/data.yml b/apps/radarr-linuxserver/6.2.1/data.yml
new file mode 100644
index 000000000..9f70e0a18
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/data.yml
@@ -0,0 +1,83 @@
+additionalProperties:
+ formFields:
+ - default: 7878
+ 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/movies
+ edit: true
+ envKey: MOVIES_PATH
+ labelEn: Movies path
+ labelZh: 电影目录
+ label:
+ en: Movies path
+ zh: 电影目录
+ zh-Hant: 電影目錄
+ ja: 映画ディレクトリ
+ ko: 영화 디렉터리
+ ru: Каталог фильмов
+ ms: Laluan filem
+ pt-br: Caminho de filmes
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOADS_PATH
+ labelEn: Downloads path
+ labelZh: 下载目录
+ label:
+ en: Downloads path
+ zh: 下载目录
+ zh-Hant: 下載目錄
+ ja: ダウンロードディレクトリ
+ ko: 다운로드 디렉터리
+ ru: Каталог загрузок
+ ms: Laluan muat turun
+ pt-br: Caminho de downloads
+ 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/radarr-linuxserver/6.2.1/data/.gitkeep b/apps/radarr-linuxserver/6.2.1/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/radarr-linuxserver/6.2.1/docker-compose.yml b/apps/radarr-linuxserver/6.2.1/docker-compose.yml
new file mode 100644
index 000000000..be61ff73a
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/docker-compose.yml
@@ -0,0 +1,22 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ radarr:
+ image: "linuxserver/radarr:6.2.1"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:7878"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${MOVIES_PATH}:/movies"
+ - "${DOWNLOADS_PATH}:/downloads"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/radarr-linuxserver/6.2.1/scripts/init.sh b/apps/radarr-linuxserver/6.2.1/scripts/init.sh
new file mode 100755
index 000000000..cf64cb1fd
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/movies ./data/downloads
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/radarr-linuxserver/6.2.1/scripts/uninstall.sh b/apps/radarr-linuxserver/6.2.1/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/radarr-linuxserver/6.2.1/scripts/upgrade.sh b/apps/radarr-linuxserver/6.2.1/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/radarr-linuxserver/6.2.1/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/radarr-linuxserver/README.md b/apps/radarr-linuxserver/README.md
new file mode 100644
index 000000000..73d35d0db
--- /dev/null
+++ b/apps/radarr-linuxserver/README.md
@@ -0,0 +1,32 @@
+# Radarr LinuxServer
+
+## 产品介绍
+
+Radarr LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/radarr` 镜像,提供 Radarr 电影媒体管理 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 movie collection management 配置
+- 持久化保存配置和业务数据
+- 使用 7878 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+Radarr LinuxServer uses the LinuxServer.io maintained `linuxserver/radarr` image for movie collection management.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 7878
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/radarr-linuxserver/data.yml b/apps/radarr-linuxserver/data.yml
new file mode 100644
index 000000000..382b666b3
--- /dev/null
+++ b/apps/radarr-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Radarr LinuxServer
+tags:
+- Media
+title: Radarr 电影媒体管理
+description: Radarr 电影媒体管理
+additionalProperties:
+ key: radarr-linuxserver
+ name: Radarr LinuxServer
+ tags:
+ - Media
+ shortDescZh: Radarr 电影媒体管理
+ shortDescEn: Movie collection manager maintained by LinuxServer.io
+ description:
+ en: Movie collection manager maintained by LinuxServer.io
+ zh: Radarr 电影媒体管理
+ zh-Hant: Radarr 電影媒體管理
+ ja: LinuxServer.io が保守する映画コレクション管理ツール
+ ko: LinuxServer.io에서 유지 관리하는 영화 컬렉션 관리자
+ ru: Менеджер фильмотеки, поддерживаемый LinuxServer.io
+ ms: Pengurus koleksi filem yang diselenggara oleh LinuxServer.io
+ pt-br: Gerenciador de filmes mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://radarr.video/
+ github: https://github.com/linuxserver/docker-radarr
+ document: https://docs.linuxserver.io/images/docker-radarr/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/radarr-linuxserver/latest/.env.sample b/apps/radarr-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..415060a01
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/.env.sample
@@ -0,0 +1,6 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=7878
+CONFIG_PATH=./data/config
+MOVIES_PATH=./data/movies
+DOWNLOADS_PATH=./data/downloads
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/radarr-linuxserver/latest/data.yml b/apps/radarr-linuxserver/latest/data.yml
new file mode 100644
index 000000000..9f70e0a18
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/data.yml
@@ -0,0 +1,83 @@
+additionalProperties:
+ formFields:
+ - default: 7878
+ 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/movies
+ edit: true
+ envKey: MOVIES_PATH
+ labelEn: Movies path
+ labelZh: 电影目录
+ label:
+ en: Movies path
+ zh: 电影目录
+ zh-Hant: 電影目錄
+ ja: 映画ディレクトリ
+ ko: 영화 디렉터리
+ ru: Каталог фильмов
+ ms: Laluan filem
+ pt-br: Caminho de filmes
+ required: true
+ type: text
+ - default: ./data/downloads
+ edit: true
+ envKey: DOWNLOADS_PATH
+ labelEn: Downloads path
+ labelZh: 下载目录
+ label:
+ en: Downloads path
+ zh: 下载目录
+ zh-Hant: 下載目錄
+ ja: ダウンロードディレクトリ
+ ko: 다운로드 디렉터리
+ ru: Каталог загрузок
+ ms: Laluan muat turun
+ pt-br: Caminho de downloads
+ 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/radarr-linuxserver/latest/data/.gitkeep b/apps/radarr-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/radarr-linuxserver/latest/docker-compose.yml b/apps/radarr-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..a182ff971
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,22 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ radarr:
+ image: "linuxserver/radarr:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:7878"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${MOVIES_PATH}:/movies"
+ - "${DOWNLOADS_PATH}:/downloads"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/radarr-linuxserver/latest/scripts/init.sh b/apps/radarr-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..cf64cb1fd
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/movies ./data/downloads
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/radarr-linuxserver/latest/scripts/uninstall.sh b/apps/radarr-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/radarr-linuxserver/latest/scripts/upgrade.sh b/apps/radarr-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/radarr-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/radarr-linuxserver/logo.png b/apps/radarr-linuxserver/logo.png
new file mode 100644
index 000000000..79a78f71d
Binary files /dev/null and b/apps/radarr-linuxserver/logo.png differ
diff --git a/apps/smokeping-linuxserver/2.9.0/.env.sample b/apps/smokeping-linuxserver/2.9.0/.env.sample
new file mode 100644
index 000000000..5cb726a35
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/.env.sample
@@ -0,0 +1,5 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=80
+CONFIG_PATH=./data/config
+DATA_PATH=./data/data
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/smokeping-linuxserver/2.9.0/data.yml b/apps/smokeping-linuxserver/2.9.0/data.yml
new file mode 100644
index 000000000..5594a9ac3
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/data.yml
@@ -0,0 +1,67 @@
+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/data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据目录
+ label:
+ en: Data folder path
+ zh: 数据目录
+ zh-Hant: 資料目錄
+ ja: データディレクトリ
+ ko: 데이터 디렉터리
+ ru: Каталог данных
+ ms: Laluan data
+ pt-br: Caminho de dados
+ 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/smokeping-linuxserver/2.9.0/data/.gitkeep b/apps/smokeping-linuxserver/2.9.0/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/smokeping-linuxserver/2.9.0/docker-compose.yml b/apps/smokeping-linuxserver/2.9.0/docker-compose.yml
new file mode 100644
index 000000000..5482ec949
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/docker-compose.yml
@@ -0,0 +1,21 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ smokeping:
+ image: "linuxserver/smokeping:2.9.0"
+ 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}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/smokeping-linuxserver/2.9.0/scripts/init.sh b/apps/smokeping-linuxserver/2.9.0/scripts/init.sh
new file mode 100755
index 000000000..85efa250f
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/data
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/smokeping-linuxserver/2.9.0/scripts/uninstall.sh b/apps/smokeping-linuxserver/2.9.0/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/smokeping-linuxserver/2.9.0/scripts/upgrade.sh b/apps/smokeping-linuxserver/2.9.0/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/smokeping-linuxserver/2.9.0/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/smokeping-linuxserver/README.md b/apps/smokeping-linuxserver/README.md
new file mode 100644
index 000000000..ade4fdb23
--- /dev/null
+++ b/apps/smokeping-linuxserver/README.md
@@ -0,0 +1,32 @@
+# SmokePing LinuxServer
+
+## 产品介绍
+
+SmokePing LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/smokeping` 镜像,提供 SmokePing 网络延迟监控 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 network latency monitoring 配置
+- 持久化保存配置和业务数据
+- 使用 80 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+SmokePing LinuxServer uses the LinuxServer.io maintained `linuxserver/smokeping` image for network latency monitoring.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 80
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/smokeping-linuxserver/data.yml b/apps/smokeping-linuxserver/data.yml
new file mode 100644
index 000000000..be7f5388a
--- /dev/null
+++ b/apps/smokeping-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: SmokePing LinuxServer
+tags:
+- DevOps
+title: SmokePing 网络延迟监控
+description: SmokePing 网络延迟监控
+additionalProperties:
+ key: smokeping-linuxserver
+ name: SmokePing LinuxServer
+ tags:
+ - DevOps
+ shortDescZh: SmokePing 网络延迟监控
+ shortDescEn: Network latency monitoring maintained by LinuxServer.io
+ description:
+ en: Network latency monitoring maintained by LinuxServer.io
+ zh: SmokePing 网络延迟监控
+ zh-Hant: SmokePing 網路延遲監控
+ ja: LinuxServer.io が保守するネットワーク遅延監視ツール
+ ko: LinuxServer.io에서 유지 관리하는 네트워크 지연 시간 모니터링 도구
+ ru: Мониторинг сетевой задержки, поддерживаемый LinuxServer.io
+ ms: Pemantauan kependaman rangkaian yang diselenggara oleh LinuxServer.io
+ pt-br: Monitoramento de latência de rede mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://oss.oetiker.ch/smokeping/
+ github: https://github.com/linuxserver/docker-smokeping
+ document: https://docs.linuxserver.io/images/docker-smokeping/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/smokeping-linuxserver/latest/.env.sample b/apps/smokeping-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..5cb726a35
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/.env.sample
@@ -0,0 +1,5 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=80
+CONFIG_PATH=./data/config
+DATA_PATH=./data/data
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/smokeping-linuxserver/latest/data.yml b/apps/smokeping-linuxserver/latest/data.yml
new file mode 100644
index 000000000..5594a9ac3
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/data.yml
@@ -0,0 +1,67 @@
+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/data
+ edit: true
+ envKey: DATA_PATH
+ labelEn: Data folder path
+ labelZh: 数据目录
+ label:
+ en: Data folder path
+ zh: 数据目录
+ zh-Hant: 資料目錄
+ ja: データディレクトリ
+ ko: 데이터 디렉터리
+ ru: Каталог данных
+ ms: Laluan data
+ pt-br: Caminho de dados
+ 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/smokeping-linuxserver/latest/data/.gitkeep b/apps/smokeping-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/smokeping-linuxserver/latest/docker-compose.yml b/apps/smokeping-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..270e4537a
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,21 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ smokeping:
+ image: "linuxserver/smokeping: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}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/smokeping-linuxserver/latest/scripts/init.sh b/apps/smokeping-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..85efa250f
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/data
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/smokeping-linuxserver/latest/scripts/uninstall.sh b/apps/smokeping-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/smokeping-linuxserver/latest/scripts/upgrade.sh b/apps/smokeping-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/smokeping-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/smokeping-linuxserver/logo.png b/apps/smokeping-linuxserver/logo.png
new file mode 100644
index 000000000..4cb43322a
Binary files /dev/null and b/apps/smokeping-linuxserver/logo.png differ
diff --git a/apps/syncthing-linuxserver/2.1.1/.env.sample b/apps/syncthing-linuxserver/2.1.1/.env.sample
new file mode 100644
index 000000000..875880bd2
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/.env.sample
@@ -0,0 +1,9 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8384
+PANEL_APP_PORT_SYNC_TCP=22000
+PANEL_APP_PORT_SYNC_UDP=22000
+PANEL_APP_PORT_DISCOVERY=21027
+CONFIG_PATH=./data/config
+DATA1_PATH=./data/data1
+DATA2_PATH=./data/data2
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/syncthing-linuxserver/2.1.1/data.yml b/apps/syncthing-linuxserver/2.1.1/data.yml
new file mode 100644
index 000000000..50cefd7c5
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/data.yml
@@ -0,0 +1,134 @@
+additionalProperties:
+ formFields:
+ - default: 8384
+ 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: 22000
+ edit: true
+ envKey: PANEL_APP_PORT_SYNC_TCP
+ labelEn: Sync Tcp Port
+ labelZh: Sync Tcp 端口
+ label:
+ en: Sync Tcp Port
+ zh: Sync Tcp 端口
+ zh-Hant: Sync Tcp 連接埠
+ ja: Sync Tcp ポート
+ ko: Sync Tcp 포트
+ ru: Порт Sync Tcp
+ ms: Port Sync Tcp
+ pt-br: Porta Sync Tcp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 22000
+ edit: true
+ envKey: PANEL_APP_PORT_SYNC_UDP
+ labelEn: Sync Udp Port
+ labelZh: Sync Udp 端口
+ label:
+ en: Sync Udp Port
+ zh: Sync Udp 端口
+ zh-Hant: Sync Udp 連接埠
+ ja: Sync Udp ポート
+ ko: Sync Udp 포트
+ ru: Порт Sync Udp
+ ms: Port Sync Udp
+ pt-br: Porta Sync Udp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 21027
+ edit: true
+ envKey: PANEL_APP_PORT_DISCOVERY
+ labelEn: Discovery Port
+ labelZh: Discovery 端口
+ label:
+ en: Discovery Port
+ zh: Discovery 端口
+ zh-Hant: Discovery 連接埠
+ ja: Discovery ポート
+ ko: Discovery 포트
+ ru: Порт Discovery
+ ms: Port Discovery
+ pt-br: Porta Discovery
+ 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/data1
+ edit: true
+ envKey: DATA1_PATH
+ labelEn: Data 1 path
+ labelZh: 数据目录 1
+ label:
+ en: Data 1 path
+ zh: 数据目录 1
+ zh-Hant: 資料目錄 1
+ ja: データディレクトリ 1
+ ko: 데이터 디렉터리 1
+ ru: Каталог данных 1
+ ms: Laluan data 1
+ pt-br: Caminho de dados 1
+ required: true
+ type: text
+ - default: ./data/data2
+ edit: true
+ envKey: DATA2_PATH
+ labelEn: Data 2 path
+ labelZh: 数据目录 2
+ label:
+ en: Data 2 path
+ zh: 数据目录 2
+ zh-Hant: 資料目錄 2
+ ja: データディレクトリ 2
+ ko: 데이터 디렉터리 2
+ ru: Каталог данных 2
+ ms: Laluan data 2
+ pt-br: Caminho de dados 2
+ 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/syncthing-linuxserver/2.1.1/data/.gitkeep b/apps/syncthing-linuxserver/2.1.1/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/syncthing-linuxserver/2.1.1/docker-compose.yml b/apps/syncthing-linuxserver/2.1.1/docker-compose.yml
new file mode 100644
index 000000000..05afcf736
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ syncthing:
+ image: "linuxserver/syncthing:2.1.1"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8384"
+ - "${PANEL_APP_PORT_SYNC_TCP}:22000/tcp"
+ - "${PANEL_APP_PORT_SYNC_UDP}:22000/udp"
+ - "${PANEL_APP_PORT_DISCOVERY}:21027/udp"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DATA1_PATH}:/data1"
+ - "${DATA2_PATH}:/data2"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/syncthing-linuxserver/2.1.1/scripts/init.sh b/apps/syncthing-linuxserver/2.1.1/scripts/init.sh
new file mode 100755
index 000000000..087f34018
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/data1 ./data/data2
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/syncthing-linuxserver/2.1.1/scripts/uninstall.sh b/apps/syncthing-linuxserver/2.1.1/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/syncthing-linuxserver/2.1.1/scripts/upgrade.sh b/apps/syncthing-linuxserver/2.1.1/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/syncthing-linuxserver/2.1.1/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/syncthing-linuxserver/README.md b/apps/syncthing-linuxserver/README.md
new file mode 100644
index 000000000..ecd0feb48
--- /dev/null
+++ b/apps/syncthing-linuxserver/README.md
@@ -0,0 +1,32 @@
+# Syncthing LinuxServer
+
+## 产品介绍
+
+Syncthing LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/syncthing` 镜像,提供 Syncthing 文件同步 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 file synchronization 配置
+- 持久化保存配置和业务数据
+- 使用 8384 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+Syncthing LinuxServer uses the LinuxServer.io maintained `linuxserver/syncthing` image for file synchronization.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 8384
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/syncthing-linuxserver/data.yml b/apps/syncthing-linuxserver/data.yml
new file mode 100644
index 000000000..0890a11a8
--- /dev/null
+++ b/apps/syncthing-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Syncthing LinuxServer
+tags:
+- Storage
+title: Syncthing 文件同步
+description: Syncthing 文件同步
+additionalProperties:
+ key: syncthing-linuxserver
+ name: Syncthing LinuxServer
+ tags:
+ - Storage
+ shortDescZh: Syncthing 文件同步
+ shortDescEn: File synchronization maintained by LinuxServer.io
+ description:
+ en: File synchronization maintained by LinuxServer.io
+ zh: Syncthing 文件同步
+ zh-Hant: Syncthing 檔案同步
+ ja: LinuxServer.io が保守するファイル同期サービス
+ ko: LinuxServer.io에서 유지 관리하는 파일 동기화 서비스
+ ru: Синхронизация файлов, поддерживаемая LinuxServer.io
+ ms: Penyegerakan fail yang diselenggara oleh LinuxServer.io
+ pt-br: Sincronização de arquivos mantida pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://syncthing.net/
+ github: https://github.com/linuxserver/docker-syncthing
+ document: https://docs.linuxserver.io/images/docker-syncthing/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/syncthing-linuxserver/latest/.env.sample b/apps/syncthing-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..875880bd2
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/.env.sample
@@ -0,0 +1,9 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=8384
+PANEL_APP_PORT_SYNC_TCP=22000
+PANEL_APP_PORT_SYNC_UDP=22000
+PANEL_APP_PORT_DISCOVERY=21027
+CONFIG_PATH=./data/config
+DATA1_PATH=./data/data1
+DATA2_PATH=./data/data2
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/syncthing-linuxserver/latest/data.yml b/apps/syncthing-linuxserver/latest/data.yml
new file mode 100644
index 000000000..50cefd7c5
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/data.yml
@@ -0,0 +1,134 @@
+additionalProperties:
+ formFields:
+ - default: 8384
+ 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: 22000
+ edit: true
+ envKey: PANEL_APP_PORT_SYNC_TCP
+ labelEn: Sync Tcp Port
+ labelZh: Sync Tcp 端口
+ label:
+ en: Sync Tcp Port
+ zh: Sync Tcp 端口
+ zh-Hant: Sync Tcp 連接埠
+ ja: Sync Tcp ポート
+ ko: Sync Tcp 포트
+ ru: Порт Sync Tcp
+ ms: Port Sync Tcp
+ pt-br: Porta Sync Tcp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 22000
+ edit: true
+ envKey: PANEL_APP_PORT_SYNC_UDP
+ labelEn: Sync Udp Port
+ labelZh: Sync Udp 端口
+ label:
+ en: Sync Udp Port
+ zh: Sync Udp 端口
+ zh-Hant: Sync Udp 連接埠
+ ja: Sync Udp ポート
+ ko: Sync Udp 포트
+ ru: Порт Sync Udp
+ ms: Port Sync Udp
+ pt-br: Porta Sync Udp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 21027
+ edit: true
+ envKey: PANEL_APP_PORT_DISCOVERY
+ labelEn: Discovery Port
+ labelZh: Discovery 端口
+ label:
+ en: Discovery Port
+ zh: Discovery 端口
+ zh-Hant: Discovery 連接埠
+ ja: Discovery ポート
+ ko: Discovery 포트
+ ru: Порт Discovery
+ ms: Port Discovery
+ pt-br: Porta Discovery
+ 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/data1
+ edit: true
+ envKey: DATA1_PATH
+ labelEn: Data 1 path
+ labelZh: 数据目录 1
+ label:
+ en: Data 1 path
+ zh: 数据目录 1
+ zh-Hant: 資料目錄 1
+ ja: データディレクトリ 1
+ ko: 데이터 디렉터리 1
+ ru: Каталог данных 1
+ ms: Laluan data 1
+ pt-br: Caminho de dados 1
+ required: true
+ type: text
+ - default: ./data/data2
+ edit: true
+ envKey: DATA2_PATH
+ labelEn: Data 2 path
+ labelZh: 数据目录 2
+ label:
+ en: Data 2 path
+ zh: 数据目录 2
+ zh-Hant: 資料目錄 2
+ ja: データディレクトリ 2
+ ko: 데이터 디렉터리 2
+ ru: Каталог данных 2
+ ms: Laluan data 2
+ pt-br: Caminho de dados 2
+ 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/syncthing-linuxserver/latest/data/.gitkeep b/apps/syncthing-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/syncthing-linuxserver/latest/docker-compose.yml b/apps/syncthing-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..347d5cb31
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,25 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ syncthing:
+ image: "linuxserver/syncthing:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:8384"
+ - "${PANEL_APP_PORT_SYNC_TCP}:22000/tcp"
+ - "${PANEL_APP_PORT_SYNC_UDP}:22000/udp"
+ - "${PANEL_APP_PORT_DISCOVERY}:21027/udp"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DATA1_PATH}:/data1"
+ - "${DATA2_PATH}:/data2"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/syncthing-linuxserver/latest/scripts/init.sh b/apps/syncthing-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..087f34018
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/data1 ./data/data2
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/syncthing-linuxserver/latest/scripts/uninstall.sh b/apps/syncthing-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/syncthing-linuxserver/latest/scripts/upgrade.sh b/apps/syncthing-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/syncthing-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/syncthing-linuxserver/logo.png b/apps/syncthing-linuxserver/logo.png
new file mode 100644
index 000000000..ded5f274f
Binary files /dev/null and b/apps/syncthing-linuxserver/logo.png differ
diff --git a/apps/transmission-linuxserver/4.1.2/.env.sample b/apps/transmission-linuxserver/4.1.2/.env.sample
new file mode 100644
index 000000000..733c2e1ad
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/.env.sample
@@ -0,0 +1,8 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=9091
+PANEL_APP_PORT_PEER_TCP=51413
+PANEL_APP_PORT_PEER_UDP=51413
+CONFIG_PATH=./data/config
+DOWNLOADS_PATH=./data/downloads
+WATCH_PATH=./data/watch
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/transmission-linuxserver/4.1.2/data.yml b/apps/transmission-linuxserver/4.1.2/data.yml
new file mode 100644
index 000000000..17fd62043
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/data.yml
@@ -0,0 +1,117 @@
+additionalProperties:
+ formFields:
+ - default: 9091
+ 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: 51413
+ edit: true
+ envKey: PANEL_APP_PORT_PEER_TCP
+ labelEn: Peer Tcp Port
+ labelZh: Peer Tcp 端口
+ label:
+ en: Peer Tcp Port
+ zh: Peer Tcp 端口
+ zh-Hant: Peer Tcp 連接埠
+ ja: Peer Tcp ポート
+ ko: Peer Tcp 포트
+ ru: Порт Peer Tcp
+ ms: Port Peer Tcp
+ pt-br: Porta Peer Tcp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 51413
+ edit: true
+ envKey: PANEL_APP_PORT_PEER_UDP
+ labelEn: Peer Udp Port
+ labelZh: Peer Udp 端口
+ label:
+ en: Peer Udp Port
+ zh: Peer Udp 端口
+ zh-Hant: Peer Udp 連接埠
+ ja: Peer Udp ポート
+ ko: Peer Udp 포트
+ ru: Порт Peer Udp
+ ms: Port Peer Udp
+ pt-br: Porta Peer Udp
+ 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/downloads
+ edit: true
+ envKey: DOWNLOADS_PATH
+ labelEn: Downloads path
+ labelZh: 下载目录
+ label:
+ en: Downloads path
+ zh: 下载目录
+ zh-Hant: 下載目錄
+ ja: ダウンロードディレクトリ
+ ko: 다운로드 디렉터리
+ ru: Каталог загрузок
+ ms: Laluan muat turun
+ pt-br: Caminho de downloads
+ required: true
+ type: text
+ - default: ./data/watch
+ edit: true
+ envKey: WATCH_PATH
+ labelEn: Watch folder path
+ labelZh: 监控目录
+ label:
+ en: Watch folder path
+ zh: 监控目录
+ zh-Hant: 監控目錄
+ ja: 監視フォルダー
+ ko: 감시 폴더
+ ru: Каталог наблюдения
+ ms: Laluan folder pantau
+ pt-br: Caminho da pasta monitorada
+ 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/transmission-linuxserver/4.1.2/data/.gitkeep b/apps/transmission-linuxserver/4.1.2/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/transmission-linuxserver/4.1.2/docker-compose.yml b/apps/transmission-linuxserver/4.1.2/docker-compose.yml
new file mode 100644
index 000000000..f672edc6d
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/docker-compose.yml
@@ -0,0 +1,24 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ transmission:
+ image: "linuxserver/transmission:4.1.2"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:9091"
+ - "${PANEL_APP_PORT_PEER_TCP}:51413"
+ - "${PANEL_APP_PORT_PEER_UDP}:51413/udp"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DOWNLOADS_PATH}:/downloads"
+ - "${WATCH_PATH}:/watch"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/transmission-linuxserver/4.1.2/scripts/init.sh b/apps/transmission-linuxserver/4.1.2/scripts/init.sh
new file mode 100755
index 000000000..d1c00f8ea
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/downloads ./data/watch
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/transmission-linuxserver/4.1.2/scripts/uninstall.sh b/apps/transmission-linuxserver/4.1.2/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/transmission-linuxserver/4.1.2/scripts/upgrade.sh b/apps/transmission-linuxserver/4.1.2/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/transmission-linuxserver/4.1.2/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/transmission-linuxserver/README.md b/apps/transmission-linuxserver/README.md
new file mode 100644
index 000000000..63333f3ee
--- /dev/null
+++ b/apps/transmission-linuxserver/README.md
@@ -0,0 +1,32 @@
+# Transmission LinuxServer
+
+## 产品介绍
+
+Transmission LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/transmission` 镜像,提供 Transmission 下载管理 能力。
+
+## 主要功能
+
+- 通过 Web UI 进行 download management 配置
+- 持久化保存配置和业务数据
+- 使用 9091 端口提供 Web 管理界面
+- 支持自定义时区
+
+## 访问说明
+
+安装完成后,通过 1Panel 应用入口或 `http://服务器地址:HTTP端口` 访问 Web 界面。首次启动后请按应用页面提示完成初始化配置。
+
+## Introduction
+
+Transmission LinuxServer uses the LinuxServer.io maintained `linuxserver/transmission` image for download management.
+
+## Features
+
+- Manage the application from the Web UI
+- Persist configuration and application data
+- Expose the Web interface on port 9091
+- Configure the container time zone
+
+## Links
+
+- LinuxServer image documentation:
+- Project website:
diff --git a/apps/transmission-linuxserver/data.yml b/apps/transmission-linuxserver/data.yml
new file mode 100644
index 000000000..a95c56413
--- /dev/null
+++ b/apps/transmission-linuxserver/data.yml
@@ -0,0 +1,30 @@
+name: Transmission LinuxServer
+tags:
+- Tool
+title: Transmission 下载管理
+description: Transmission 下载管理
+additionalProperties:
+ key: transmission-linuxserver
+ name: Transmission LinuxServer
+ tags:
+ - Tool
+ shortDescZh: Transmission 下载管理
+ shortDescEn: Torrent download manager maintained by LinuxServer.io
+ description:
+ en: Torrent download manager maintained by LinuxServer.io
+ zh: Transmission 下载管理
+ zh-Hant: Transmission 下載管理
+ ja: LinuxServer.io が保守する Torrent ダウンロード管理ツール
+ ko: LinuxServer.io에서 유지 관리하는 토렌트 다운로드 관리자
+ ru: Менеджер торрент-загрузок, поддерживаемый LinuxServer.io
+ ms: Pengurus muat turun torrent yang diselenggara oleh LinuxServer.io
+ pt-br: Gerenciador de downloads torrent mantido pela LinuxServer.io
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ website: https://transmissionbt.com/
+ github: https://github.com/linuxserver/docker-transmission
+ document: https://docs.linuxserver.io/images/docker-transmission/
+ architectures:
+ - amd64
+ - arm64
diff --git a/apps/transmission-linuxserver/latest/.env.sample b/apps/transmission-linuxserver/latest/.env.sample
new file mode 100644
index 000000000..733c2e1ad
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/.env.sample
@@ -0,0 +1,8 @@
+CONTAINER_NAME=
+PANEL_APP_PORT_HTTP=9091
+PANEL_APP_PORT_PEER_TCP=51413
+PANEL_APP_PORT_PEER_UDP=51413
+CONFIG_PATH=./data/config
+DOWNLOADS_PATH=./data/downloads
+WATCH_PATH=./data/watch
+TIME_ZONE=Asia/Shanghai
diff --git a/apps/transmission-linuxserver/latest/data.yml b/apps/transmission-linuxserver/latest/data.yml
new file mode 100644
index 000000000..17fd62043
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/data.yml
@@ -0,0 +1,117 @@
+additionalProperties:
+ formFields:
+ - default: 9091
+ 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: 51413
+ edit: true
+ envKey: PANEL_APP_PORT_PEER_TCP
+ labelEn: Peer Tcp Port
+ labelZh: Peer Tcp 端口
+ label:
+ en: Peer Tcp Port
+ zh: Peer Tcp 端口
+ zh-Hant: Peer Tcp 連接埠
+ ja: Peer Tcp ポート
+ ko: Peer Tcp 포트
+ ru: Порт Peer Tcp
+ ms: Port Peer Tcp
+ pt-br: Porta Peer Tcp
+ required: true
+ type: number
+ rule: paramPort
+ - default: 51413
+ edit: true
+ envKey: PANEL_APP_PORT_PEER_UDP
+ labelEn: Peer Udp Port
+ labelZh: Peer Udp 端口
+ label:
+ en: Peer Udp Port
+ zh: Peer Udp 端口
+ zh-Hant: Peer Udp 連接埠
+ ja: Peer Udp ポート
+ ko: Peer Udp 포트
+ ru: Порт Peer Udp
+ ms: Port Peer Udp
+ pt-br: Porta Peer Udp
+ 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/downloads
+ edit: true
+ envKey: DOWNLOADS_PATH
+ labelEn: Downloads path
+ labelZh: 下载目录
+ label:
+ en: Downloads path
+ zh: 下载目录
+ zh-Hant: 下載目錄
+ ja: ダウンロードディレクトリ
+ ko: 다운로드 디렉터리
+ ru: Каталог загрузок
+ ms: Laluan muat turun
+ pt-br: Caminho de downloads
+ required: true
+ type: text
+ - default: ./data/watch
+ edit: true
+ envKey: WATCH_PATH
+ labelEn: Watch folder path
+ labelZh: 监控目录
+ label:
+ en: Watch folder path
+ zh: 监控目录
+ zh-Hant: 監控目錄
+ ja: 監視フォルダー
+ ko: 감시 폴더
+ ru: Каталог наблюдения
+ ms: Laluan folder pantau
+ pt-br: Caminho da pasta monitorada
+ 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/transmission-linuxserver/latest/data/.gitkeep b/apps/transmission-linuxserver/latest/data/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/transmission-linuxserver/latest/docker-compose.yml b/apps/transmission-linuxserver/latest/docker-compose.yml
new file mode 100644
index 000000000..65e01099e
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/docker-compose.yml
@@ -0,0 +1,24 @@
+networks:
+ 1panel-network:
+ external: true
+services:
+ transmission:
+ image: "linuxserver/transmission:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:9091"
+ - "${PANEL_APP_PORT_PEER_TCP}:51413"
+ - "${PANEL_APP_PORT_PEER_UDP}:51413/udp"
+ volumes:
+ - "${CONFIG_PATH}:/config"
+ - "${DOWNLOADS_PATH}:/downloads"
+ - "${WATCH_PATH}:/watch"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=${TIME_ZONE}
+ labels:
+ createdBy: "Apps"
diff --git a/apps/transmission-linuxserver/latest/scripts/init.sh b/apps/transmission-linuxserver/latest/scripts/init.sh
new file mode 100755
index 000000000..d1c00f8ea
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/scripts/init.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -euo pipefail
+mkdir -p ./data/config ./data/downloads ./data/watch
+chown -R 1000:1000 ./data 2>/dev/null || true
diff --git a/apps/transmission-linuxserver/latest/scripts/uninstall.sh b/apps/transmission-linuxserver/latest/scripts/uninstall.sh
new file mode 100755
index 000000000..ab8a8d674
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/scripts/uninstall.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+docker-compose down --volumes
diff --git a/apps/transmission-linuxserver/latest/scripts/upgrade.sh b/apps/transmission-linuxserver/latest/scripts/upgrade.sh
new file mode 100755
index 000000000..6e877466e
--- /dev/null
+++ b/apps/transmission-linuxserver/latest/scripts/upgrade.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+set -euo pipefail
diff --git a/apps/transmission-linuxserver/logo.png b/apps/transmission-linuxserver/logo.png
new file mode 100644
index 000000000..d93a4e8bc
Binary files /dev/null and b/apps/transmission-linuxserver/logo.png differ