From 4212007c12dcf012c2f4ab94c5e760ebddd3fed5 Mon Sep 17 00:00:00 2001 From: okxlin Date: Thu, 14 Nov 2024 22:39:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0deluge=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/deluge/2.1.1/.env.sample | 10 ++++ apps/deluge/2.1.1/data.yml | 68 ++++++++++++++++++++++++++ apps/deluge/2.1.1/docker-compose.yml | 26 ++++++++++ apps/deluge/README.md | 12 +++++ apps/deluge/data.yml | 19 +++++++ apps/deluge/latest/.env.sample | 10 ++++ apps/deluge/latest/data.yml | 68 ++++++++++++++++++++++++++ apps/deluge/latest/docker-compose.yml | 26 ++++++++++ apps/deluge/logo.png | Bin 0 -> 8296 bytes 9 files changed, 239 insertions(+) create mode 100644 apps/deluge/2.1.1/.env.sample create mode 100644 apps/deluge/2.1.1/data.yml create mode 100644 apps/deluge/2.1.1/docker-compose.yml create mode 100644 apps/deluge/README.md create mode 100644 apps/deluge/data.yml create mode 100644 apps/deluge/latest/.env.sample create mode 100644 apps/deluge/latest/data.yml create mode 100644 apps/deluge/latest/docker-compose.yml create mode 100644 apps/deluge/logo.png diff --git a/apps/deluge/2.1.1/.env.sample b/apps/deluge/2.1.1/.env.sample new file mode 100644 index 00000000..642032f8 --- /dev/null +++ b/apps/deluge/2.1.1/.env.sample @@ -0,0 +1,10 @@ +CONFIG_PATH="./data/config" +CONTAINER_NAME="deluge" +DELUGE_LOGLEVEL="error" +DELUGE_PEER_PORT=6881 +DELUGE_PORT_RPC=58846 +DOWNLOAD_PATH="./data/downloads" +PANEL_APP_PORT_HTTP=40321 +PGID=1000 +PUID=1000 +TIME_ZONE="Asia/Shanghai" diff --git a/apps/deluge/2.1.1/data.yml b/apps/deluge/2.1.1/data.yml new file mode 100644 index 00000000..0920dcc4 --- /dev/null +++ b/apps/deluge/2.1.1/data.yml @@ -0,0 +1,68 @@ +additionalProperties: + formFields: + - default: "40321" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "6881" + edit: true + envKey: DELUGE_PEER_PORT + labelEn: Peer Port + labelZh: Peer 端口 + required: true + rule: paramPort + type: number + - default: "58846" + edit: true + envKey: DELUGE_PORT_RPC + labelEn: RPC Port + labelZh: RPC 端口 + required: true + rule: paramPort + type: number + - default: "1000" + edit: true + envKey: PUID + labelEn: User ID + labelZh: 用户 ID + required: true + type: number + - default: "1000" + edit: true + envKey: PGID + labelEn: Group ID + labelZh: 组 ID + required: true + type: number + - default: "Asia/Shanghai" + edit: true + envKey: TIME_ZONE + labelEn: Time Zone + labelZh: 时区 + required: true + type: text + - default: "error" + edit: true + envKey: DELUGE_LOGLEVEL + labelEn: Deluge Log Level + labelZh: Deluge 日志级别 + required: true + type: text + - default: "./data/config" + edit: true + envKey: CONFIG_PATH + labelEn: Deluge Config Path + labelZh: Deluge 配置路径 + required: true + type: text + - default: "./data/downloads" + edit: true + envKey: DOWNLOAD_PATH + labelEn: Downloads Path + labelZh: 下载路径 + required: true + type: text diff --git a/apps/deluge/2.1.1/docker-compose.yml b/apps/deluge/2.1.1/docker-compose.yml new file mode 100644 index 00000000..0aae8a31 --- /dev/null +++ b/apps/deluge/2.1.1/docker-compose.yml @@ -0,0 +1,26 @@ +services: + deluge: + image: "linuxserver/deluge:2.1.1" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TIME_ZONE} + - DELUGE_LOGLEVEL=${DELUGE_LOGLEVEL} + volumes: + - ${CONFIG_PATH}:/config + - ${DOWNLOAD_PATH}:/downloads + ports: + - "${PANEL_APP_PORT_HTTP}:8112" + - "${DELUGE_PEER_PORT}:${DELUGE_PEER_PORT}" + - "${DELUGE_PEER_PORT}:${DELUGE_PEER_PORT}/udp" + - "${DELUGE_PORT_RPC}:${DELUGE_PORT_RPC}" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/deluge/README.md b/apps/deluge/README.md new file mode 100644 index 00000000..ca64c593 --- /dev/null +++ b/apps/deluge/README.md @@ -0,0 +1,12 @@ +# Deluge + +[Deluge](http://deluge-torrent.org/) 是一个轻量级的免费软件、跨平台的 BitTorrent 客户端。 + +### 主要特点: + +- **完全加密**:支持对传输的文件进行加密,确保下载的安全性。 +- **WebUI**:可以通过浏览器访问 Web 界面,方便远程管理下载任务。 +- **插件系统**:提供丰富的插件系统,支持扩展更多功能。 +- **更多功能**:包括资源管理、带宽控制、任务调度等功能。 + +Deluge 是一个强大且灵活的 BitTorrent 客户端,适合需要高效、低资源消耗的用户。 \ No newline at end of file diff --git a/apps/deluge/data.yml b/apps/deluge/data.yml new file mode 100644 index 00000000..b2a4d0d1 --- /dev/null +++ b/apps/deluge/data.yml @@ -0,0 +1,19 @@ +name: Deluge +tags: + - 实用工具 +title: 跨平台的 BitTorrent 客户端 +description: 跨平台的 BitTorrent 客户端 +additionalProperties: + key: deluge + name: Deluge + tags: + - Tool + shortDescZh: 跨平台的 BitTorrent 客户端 + shortDescEn: Cross-platform BitTorrent client + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://deluge-torrent.org + github: https://github.com/linuxserver/docker-deluge + document: https://deluge.readthedocs.io diff --git a/apps/deluge/latest/.env.sample b/apps/deluge/latest/.env.sample new file mode 100644 index 00000000..642032f8 --- /dev/null +++ b/apps/deluge/latest/.env.sample @@ -0,0 +1,10 @@ +CONFIG_PATH="./data/config" +CONTAINER_NAME="deluge" +DELUGE_LOGLEVEL="error" +DELUGE_PEER_PORT=6881 +DELUGE_PORT_RPC=58846 +DOWNLOAD_PATH="./data/downloads" +PANEL_APP_PORT_HTTP=40321 +PGID=1000 +PUID=1000 +TIME_ZONE="Asia/Shanghai" diff --git a/apps/deluge/latest/data.yml b/apps/deluge/latest/data.yml new file mode 100644 index 00000000..0920dcc4 --- /dev/null +++ b/apps/deluge/latest/data.yml @@ -0,0 +1,68 @@ +additionalProperties: + formFields: + - default: "40321" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "6881" + edit: true + envKey: DELUGE_PEER_PORT + labelEn: Peer Port + labelZh: Peer 端口 + required: true + rule: paramPort + type: number + - default: "58846" + edit: true + envKey: DELUGE_PORT_RPC + labelEn: RPC Port + labelZh: RPC 端口 + required: true + rule: paramPort + type: number + - default: "1000" + edit: true + envKey: PUID + labelEn: User ID + labelZh: 用户 ID + required: true + type: number + - default: "1000" + edit: true + envKey: PGID + labelEn: Group ID + labelZh: 组 ID + required: true + type: number + - default: "Asia/Shanghai" + edit: true + envKey: TIME_ZONE + labelEn: Time Zone + labelZh: 时区 + required: true + type: text + - default: "error" + edit: true + envKey: DELUGE_LOGLEVEL + labelEn: Deluge Log Level + labelZh: Deluge 日志级别 + required: true + type: text + - default: "./data/config" + edit: true + envKey: CONFIG_PATH + labelEn: Deluge Config Path + labelZh: Deluge 配置路径 + required: true + type: text + - default: "./data/downloads" + edit: true + envKey: DOWNLOAD_PATH + labelEn: Downloads Path + labelZh: 下载路径 + required: true + type: text diff --git a/apps/deluge/latest/docker-compose.yml b/apps/deluge/latest/docker-compose.yml new file mode 100644 index 00000000..a3012c1e --- /dev/null +++ b/apps/deluge/latest/docker-compose.yml @@ -0,0 +1,26 @@ +services: + deluge: + image: "linuxserver/deluge:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TIME_ZONE} + - DELUGE_LOGLEVEL=${DELUGE_LOGLEVEL} + volumes: + - ${CONFIG_PATH}:/config + - ${DOWNLOAD_PATH}:/downloads + ports: + - "${PANEL_APP_PORT_HTTP}:8112" + - "${DELUGE_PEER_PORT}:${DELUGE_PEER_PORT}" + - "${DELUGE_PEER_PORT}:${DELUGE_PEER_PORT}/udp" + - "${DELUGE_PORT_RPC}:${DELUGE_PORT_RPC}" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/deluge/logo.png b/apps/deluge/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2a952dd5a25c247da7e1b5c810f851400cec5e1a GIT binary patch literal 8296 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 U4Xlj*e(1s|$f!zJOPYlIADb<&6aWAK literal 0 HcmV?d00001