diff --git a/xunlei/3.20.2/data.yml b/xunlei/3.20.2/data.yml new file mode 100644 index 000000000..4b3110e7e --- /dev/null +++ b/xunlei/3.20.2/data.yml @@ -0,0 +1,27 @@ +additionalProperties: + formFields: + - default: "40163" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + + - default: "xunlei" + edit: true + envKey: XL_DASHBOARD_USERNAME + labelZh: 控制台用户名 + labelEn: Dashboard Username + required: true + type: text + + - default: "xunlei" + edit: true + envKey: XL_DASHBOARD_PASSWORD + labelZh: 控制台密码 + labelEn: Dashboard Password + required: true + rule: paramComplexity + type: password diff --git a/xunlei/3.20.2/docker-compose.yml b/xunlei/3.20.2/docker-compose.yml new file mode 100644 index 000000000..52ad30da5 --- /dev/null +++ b/xunlei/3.20.2/docker-compose.yml @@ -0,0 +1,30 @@ +networks: + 1panel-network: + external: true + +services: + xunlei: + container_name: ${CONTAINER_NAME} + environment: + - XL_DASHBOARD_PORT=${PANEL_APP_PORT_HTTP} + - XL_DASHBOARD_IP=0.0.0.0 + - XL_DASHBOARD_USERNAME=${XL_DASHBOARD_USERNAME} + - XL_DASHBOARD_PASSWORD=${XL_DASHBOARD_PASSWORD} + - XL_DIR_DOWNLOAD=/xunlei/downloads + - XL_DIR_DATA=/xunlei/data + - XL_UID=0 + - XL_GID=0 + - XL_PREVENT_UPDATE=true + - XL_DEBUG=false + image: cnk3x/xunlei:v3.20.2 + labels: + createdBy: "Apps" + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + privileged: true + restart: always + volumes: + - ./data/data:/xunlei/data + - ./data/downloads:/xunlei/downloads diff --git a/xunlei/README.md b/xunlei/README.md new file mode 100644 index 000000000..aefc0d58c --- /dev/null +++ b/xunlei/README.md @@ -0,0 +1,86 @@ +# 迅雷远程下载服务(非官方) + +[![GitHub Stars][1]][2] [![Docker Pulls][3]][5] [![Docker Version][4]][5] + +[1]: https://img.shields.io/github/stars/cnk3x/xunlei?style=flat +[2]: https://star-history.com/#cnk3x/xunlei&Date +[3]: https://img.shields.io/docker/pulls/cnk3x/xunlei.svg +[4]: https://img.shields.io/docker/v/cnk3x/xunlei +[5]: https://hub.docker.com/r/cnk3x/xunlei + +从迅雷群晖套件中提取出来用于其他设备的迅雷远程下载服务程序。仅供研究学习测试。 \ +本程序仅提供 Linux 模拟和容器化运行环境,未对原版迅雷程序进行任何修改。 + +## 使用 + +### Docker + +#### 镜像 + +```plain +cnk3x/xunlei:latest +registry.cn-shenzhen.aliyuncs.com/cnk3x/xunlei:latest +ghcr.io/cnk3x/xunlei:latest +``` + +**常规**的容器,还是要在特权模式下运行。 + +如果 docker 的存储驱动如果是 btrfs 或者 overlayfs,可以支持的非特权运行。 + +#### 环境变量参数 + +```bash +XL_DASHBOARD_PORT #网页访问的端口,默认 2345 +XL_DASHBOARD_IP #网页访问的端口,默认 0.0.0.0(代表所有IP) +XL_DASHBOARD_USERNAME #网页访问的用户名 +XL_DASHBOARD_PASSWORD #网页访问的密码 +XL_DIR_DOWNLOAD #下载保存默认文件夹,默认 /xunlei/downloads,多个文件夹用冒号:分隔 +XL_DIR_DATA #程序数据保存文件夹,默认 /xunlei/data +XL_UID #运行迅雷的用户ID +XL_GID #运行迅雷的用户组ID +XL_PREVENT_UPDATE #是否阻止更新,默认 true, 可选值 true/false, 1/0 +XL_CHROOT #隔离运行主目录, 指定该值且不为`/`则以隔离模式运行, 用于在容器内隔离环境,容器内默认为 /xunlei,隔离模式运行需要特权模式(--privileged),可以将该值设置为`/`来以非特权模式运行。非特权模式运行有条件,可以尝试失败后使用特权模式重新运行。 +XL_DEBUG #调试模式, 可选值 true/false, 1/0 +``` + +#### 在容器中运行 + +```bash +# docker run -d \ +# -v <数据目录>:/xunlei/data \ +# -v <默认下载保存目录>:/xunlei/downloads \ +# -p <访问端口>:2345 \ +# --privileged \ +# cnk3x/xunlei + +# example +docker run --privileged -v /mnt/sdb1/configs/xunlei:/xunlei/data -v /mnt/sdb1/downloads:/xunlei/downloads -p 2345:2345 cnk3x/xunlei + +# 如果你的docker存储驱动是 overlayfs 或者 btrfs等, 可以不用特权运行 +docker run -e XL_CHROOT=/ -v /mnt/sdb1/configs/xunlei:/xunlei/data -v /mnt/sdb1/downloads:/xunlei/downloads -p 2345:2345 cnk3x/xunlei + +``` + +也可以直接运行 + +```plain +$ bin/xlp-amd64 --help + +Flags: + -p, --dashboard_port 网页访问的端口 (env: XL_DASHBOARD_PORT) (default 2345) + -i, --dashboard_ip 网页访问绑定IP,默认绑定所有IP (env: XL_DASHBOARD_IP) + -u, --dashboard_username 网页访问的用户名 (env: XL_DASHBOARD_USERNAME) + -k, --dashboard_password 网页访问的密码 (env: XL_DASHBOARD_PASSWORD) + --dir_download 下载保存文件夹,可多次指定,需确保有权限访问 (env: XL_DIR_DOWNLOAD) (default [/xunlei/downloads]) + --dir_data 程序数据保存文件夹,其下'.drive'文件夹中,存储了登录的账号,下载进度等信息 (env: XL_DIR_DATA) (default "/xunlei/data") + --uid 运行迅雷的用户ID (env: XL_UID, UID) + --gid 运行迅雷的用户组ID (env: XL_GID, GID) + --prevent_update 阻止更新 (env: XL_PREVENT_UPDATE) (default true) + -r, --chroot CHROOT主目录, 指定该值且不为/则以chroot模式运行, 用于在容器内隔离环境 (env: XL_CHROOT) (default "/") + --debug 是否开启调试日志 (env: XL_DEBUG) + -v, --version 显示版本信息 +``` + +## Used By + +[kubespider](https://github.com/opennaslab/kubespider/blob/main/docs/zh/user_guide/thunder_install_config/README.md) \ No newline at end of file diff --git a/xunlei/data.yml b/xunlei/data.yml new file mode 100644 index 000000000..45842f6e2 --- /dev/null +++ b/xunlei/data.yml @@ -0,0 +1,19 @@ +name: 迅雷 +tags: + - 实用工具 +title: 提取自群晖平台的迅雷下载套件 +description: 提取自群晖平台的迅雷下载套件 +additionalProperties: + key: xunlei + name: 迅雷 + tags: + - Tool + shortDescZh: 提取自群晖平台的迅雷下载套件 + shortDescEn: Thunder download kit extracted from Synology platform + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://www.xunlei.com + github: https://github.com/cnk3x/xunlei/tree/docker + document: https://github.com/cnk3x/xunlei/tree/docker diff --git a/xunlei/latest/data.yml b/xunlei/latest/data.yml new file mode 100644 index 000000000..4f6015888 --- /dev/null +++ b/xunlei/latest/data.yml @@ -0,0 +1,27 @@ +additionalProperties: + formFields: + - default: "40163" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + + - default: "xunlei" + edit: true + envKey: XL_DASHBOARD_USERNAME + labelEn: Dashboard Username + labelZh: 控制台用户名 + required: true + type: text + + - default: "xunlei" + edit: true + envKey: XL_DASHBOARD_PASSWORD + labelEn: Dashboard Password + labelZh: 控制台密码 + required: true + rule: paramComplexity + type: password diff --git a/xunlei/latest/docker-compose.yml b/xunlei/latest/docker-compose.yml new file mode 100644 index 000000000..1d054bd4c --- /dev/null +++ b/xunlei/latest/docker-compose.yml @@ -0,0 +1,30 @@ +networks: + 1panel-network: + external: true + +services: + xunlei: + container_name: ${CONTAINER_NAME} + environment: + - XL_DASHBOARD_PORT=${PANEL_APP_PORT_HTTP} + - XL_DASHBOARD_IP=0.0.0.0 + - XL_DASHBOARD_USERNAME=${XL_DASHBOARD_USERNAME} + - XL_DASHBOARD_PASSWORD=${XL_DASHBOARD_PASSWORD} + - XL_DIR_DOWNLOAD=/xunlei/downloads + - XL_DIR_DATA=/xunlei/data + - XL_UID=0 + - XL_GID=0 + - XL_PREVENT_UPDATE=true + - XL_DEBUG=false + image: cnk3x/xunlei:latest + labels: + createdBy: "Apps" + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + privileged: true + restart: always + volumes: + - ./data/data:/xunlei/data + - ./data/downloads:/xunlei/downloads diff --git a/xunlei/logo.png b/xunlei/logo.png new file mode 100644 index 000000000..4d35c4e89 Binary files /dev/null and b/xunlei/logo.png differ