Important
**分支说明(Go 主线)**:本分支(`go`)为当前默认开发主线,后续功能迭代仅在本分支进行。 Python 旧实现已迁移到 `python` 分支用于归档。
PT Nexus 是一款支持 Docker 容器化部署、兼容多下载器与多数据库的 PT 种子聚合管理平台,可自动提取标准化种子参数、解析标题组件,智能纠错补充 MediaInfo/截图/简介等内容、适配不同站点发布规范,支持批量转种与自动推送下载器做种,还具备禁转检测、已存在种子智能匹配等机制,搭配本地文件检索、IYUU API 查漏种等辅助功能,大幅简化跨站点转种流程,显著提升 PT 转种与管理效率。
如需在推送代码后通过命令手动触发 GitHub Release,可直接使用仓库里的发布脚本。
前置条件:
gh auth loginCHANGELOG.json 推送到目标分支推荐在仓库根目录执行,常用命令:
./scripts/release-manual-dispatch.sh
./scripts/release-manual-dispatch.sh --dry-run
./scripts/release-manual-dispatch.sh --all
./scripts/release-manual-dispatch.sh --ref go --no-desktop
说明:
--all 时,会跳过交互并直接启用全部四项发布git push origin <branch>,成功后再触发 .github/workflows/release-manual.ymlgo 分支;若仓库不存在 go,则回退到远端默认分支CHANGELOG.json 最新一条为准webui/,也不依赖 npm / pnpmgh,脚本会先询问是否尝试自动安装 GitHub CLI转种限制方案由多位站点管理人员共同制定,转种限制代码使用 Go 编写编译且暂不开源,其他功能均在 Python 代码里实现,感谢各位站点管理人员的支持与配合。 代码仅供学习参考使用,严禁用于商业用途。
| 分类 | 参数 | 说明 | 示例 |
|---|---|---|---|
| 通用 | TZ | 设置容器时区,确保时间与日志准确。 | Asia/Shanghai |
| http_proxy | 设置容器代理,确保能正常访问站点与各种服务。 | http://192.168.1.100:7890 | |
| https_proxy | 设置容器代理,确保能正常访问站点与各种服务。 | http://192.168.1.100:7890 | |
| 数据库 | DB_TYPE | 选择数据库类型。sqlite、mysql 或 postgres。 | sqlite |
| MYSQL_HOST | (MySQL 专用) 数据库主机地址。 | 192.168.1.100 | |
| MYSQL_PORT | (MySQL 专用) 数据库端口。 | 3306 | |
| MYSQL_DATABASE | (MySQL 专用) 数据库名称。 | pt-nexus | |
| MYSQL_USER | (MySQL 专用) 数据库用户名。 | root | |
| MYSQL_PASSWORD | (MySQL 专用) 数据库密码。 | your_password | |
| POSTGRES_HOST | (PostgreSQL 专用) 数据库主机地址。 | 192.168.1.100 | |
| POSTGRES_PORT | (PostgreSQL 专用) 数据库端口。 | 5432 | |
| POSTGRES_DATABASE | (PostgreSQL 专用) 数据库名称。 | pt-nexus | |
| POSTGRES_USER | (PostgreSQL 专用) 数据库用户名。 | root | |
| POSTGRES_PASSWORD | (PostgreSQL 专用) 数据库密码。 | your_password |
注: 旧版本更新到 v3.0.0 版本因为数据库有很大变化,需要删除原来的数据库的所有表,然后代码会重新创建新的表,可以使用
docker run -p 8080:8080 adminer进行修改。
docker-compose.yml 文件ISO 自动挂载说明: 若要在原生 Linux Docker 中直接读取
.iso,需要为pt-nexus服务额外补充以下配置:environment: - PTNEXUS_ISO_MOUNT_ROOT=/app/data/tmp/iso-mounts cap_add: - SYS_ADMIN devices: - /dev/loop-control:/dev/loop-control - /dev/loop0:/dev/loop0 - /dev/loop1:/dev/loop1 - /dev/loop2:/dev/loop2 - /dev/loop3:/dev/loop3宿主机需提前具备可用的
loop设备;若设备数量不足,可继续映射更多/dev/loopN。该能力仅保证原生 Linux Docker,不适用于 Docker Desktop / WSL。
services:
pt-nexus:
image: ghcr.nju.edu.cn/sqing33/pt-nexus:latest
container_name: pt-nexus
ports:
- 5274:5274
volumes:
- ./data:/app/data
- /vol3/1000/pt:/pt # 视频文件存放路径
# 如要使用转种上盒功能,tr需要种子文件存放路径,qb使用api无需设置
# 设置页面第一个tr映射到/data/tr_torrents/tr1,第二个tr映射到/data/tr_torrents/tr2
- /vol1/1000/Docker/transmission/torrents:/data/tr_torrents/tr1
- /vol1/1000/Docker/transmission2/torrents:/data/tr_torrents/tr2
environment:
- TZ=Asia/Shanghai
- DB_TYPE=sqlite
- PTNEXUS_ISO_MOUNT_ROOT=/app/data/tmp/iso-mounts
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/loop-control:/dev/loop-control
- /dev/loop0:/dev/loop0
- /dev/loop1:/dev/loop1
- /dev/loop2:/dev/loop2
- /dev/loop3:/dev/loop3
services:
pt-nexus:
image: ghcr.nju.edu.cn/sqing33/pt-nexus:latest
container_name: pt-nexus
ports:
- 5274:5274
volumes:
- ./data:/app/data
- /vol3/1000/pt:/pt # 视频文件存放路径
# 如要使用转种上盒功能,tr需要种子文件存放路径,qb使用api无需设置
# 设置页面第一个tr映射到/data/tr_torrents/tr1,第二个tr映射到/data/tr_torrents/tr2
- /vol1/1000/Docker/transmission/torrents:/data/tr_torrents/tr1
- /vol1/1000/Docker/transmission2/torrents:/data/tr_torrents/tr2
environment:
- TZ=Asia/Shanghai
- DB_TYPE=mysql
- MYSQL_HOST=192.168.1.100
- MYSQL_PORT=3306
- MYSQL_DATABASE=pt_nexus
- MYSQL_USER=root
- MYSQL_PASSWORD=your_password
- PTNEXUS_ISO_MOUNT_ROOT=/app/data/tmp/iso-mounts
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/loop-control:/dev/loop-control
- /dev/loop0:/dev/loop0
- /dev/loop1:/dev/loop1
- /dev/loop2:/dev/loop2
- /dev/loop3:/dev/loop3
services:
pt-nexus:
image: ghcr.nju.edu.cn/sqing33/pt-nexus:latest
container_name: pt-nexus
ports:
- 5274:5274
volumes:
- ./data:/app/data
- /vol3/1000/pt:/pt # 视频文件存放路径
# 如要使用转种上盒功能,tr需要种子文件存放路径,qb使用api无需设置
# 设置页面第一个tr映射到/data/tr_torrents/tr1,第二个tr映射到/data/tr_torrents/tr2
- /vol1/1000/Docker/transmission/torrents:/data/tr_torrents/tr1
- /vol1/1000/Docker/transmission2/torrents:/data/tr_torrents/tr2
environment:
- TZ=Asia/Shanghai
- DB_TYPE=postgresql
- POSTGRES_HOST=192.168.1.100
- POSTGRES_PORT=5433
- POSTGRES_DATABASE=pt-nexus
- POSTGRES_USER=root
- POSTGRES_PASSWORD=your_password
- PTNEXUS_ISO_MOUNT_ROOT=/app/data/tmp/iso-mounts
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
devices:
- /dev/loop-control:/dev/loop-control
- /dev/loop0:/dev/loop0
- /dev/loop1:/dev/loop1
- /dev/loop2:/dev/loop2
- /dev/loop3:/dev/loop3
在与 docker-compose.yml 相同的目录下,运行以下命令启动服务:
docker-compose up -d
服务启动后,通过 http://<你的服务器IP>:5274 访问 PT Nexus 界面。
通过 Docker 部署的 PT Nexus 支持在线更新:updater 会读取
UPDATE_MANIFEST.json,下载对应平台的构建产物(artifact),完成校验后原子切换并重启服务。整个流程不依赖 git 拉取源码。
提示: 若使用“在线更新”把新代码同步进旧镜像,可能会出现依赖缺失(例如
supervisord、libicu)导致无法启动。新版启动脚本会在启动时自动检测并尝试安装缺失的系统依赖(需要容器以 root 运行且可联网)。如需关闭:
AUTO_INSTALL_SYSTEM_DEPS=false(不自动安装系统依赖)

宇宙坍缩,重启了一个新的宇宙,版本号从 v4.0.0 开始计数,已重构后端为 GO 语言,需要重新下载镜像进行更新,数据会自动迁移。
Content type
Image
Digest
sha256:f22e8c223…
Size
391.2 MB
Last updated
about 8 hours ago
docker pull sqing33/pt-nexus:beta-53eee1fed091