Warning
本项目处于公测早期阶段。 PT 站点规则各异,自动辅种行为请自行确认符合所属站点条款;因使用本工具导致的账号处罚风险自负。建议先在小范围种子上试运行。
传统辅种工具依赖中央服务器做跨站资源匹配,且界面老旧、配置繁琐。SeedPilot 的三个不同点:
- 去中心化匹配:节点之间直接交换资源映射,无单点、不依赖任何中央服务器的存续
- 隐私优先:采用 ECDH-PSI 隐私集合求交协议——查询时其他节点只知道"命中了几条",永远不知道你的完整种子库构成
- 最小用户心智:五分钟从安装到自动辅种;所有配置有智能默认值;界面先给结论、细节折叠
单二进制分发,内置 Web 管理界面,支持 qBittorrent 与 Transmission。
| 特性 | 说明 |
|---|---|
| 跨站资源发现 | 基于 P-256 盲化的 PSI 查询协议,节点间隐私交换 hash ↔ hash 映射 |
| 全自动闭环 | 匹配 → 站点检索取种 → info_hash 校验 → 推送下载器 → 状态探测,全程无人值守 |
| 多下载器 | qBittorrent(WebUI API v2)与 Transmission(RPC),可同时挂载多个实例 |
| 内置 Web UI | 三步向导、仪表盘、任务详情展开、设置热更新,令牌登录 |
| 结构性隐私 | 本地种子库零明文外泄;映射记录不含站点名与用户信息,全部节点签名 |
| 单二进制 | Go 编译 + 前端 embed,一个文件跑起来;多架构 Docker 镜像同步发布 |
前置准备:创建数据目录与初始配置
mkdir -p ./data
cat > ./data/config.yaml <<'EOF'
schedule:
interval: 6h
downloaders:
- type: qbittorrent
url: http://127.0.0.1:8080
web:
listen_addr: 0.0.0.0:8900
EOF[!IMPORTANT] 容器内
127.0.0.1指容器自身——若下载器运行在宿主机,请把 URL 改为http://host.docker.internal:8080(Docker Desktop)或宿主局域网 IP。
# docker-compose.yml
services:
seedpilot:
image: f1owka0g/seedpilot:v0.1.0
container_name: seedpilot
restart: unless-stopped
ports:
- "8900:8900"
volumes:
- ./data:/data
environment:
- SEEDPILOT_DB=/data/seedpilot.dbdocker compose up -d
docker logs seedpilot # 从日志中找到 web ui ready 行,复制 token- 前往 Releases 下载对应平台的 zip 包解压
- 准备一份
config.yaml(参考上方最简配置,去掉 listen_addr 一节即可) - 运行:
./seedpilot serve --config config.yaml- 浏览器打开
http://<设备IP>:8900 - 首页输入访问令牌——位置二选一:
- 启动日志中的
web ui ready ... token=xxxx行 - 数据目录下的
web-token.txt文件
- 启动日志中的
- 进入 向导 页面,三步完成配置:
- 连接下载器:填入 qBittorrent / Transmission 地址与凭据,点击「测试连接」实时验证
- 绑定站点:粘贴站点 Cookie,点击「测试站点」验证检索可用性
- 调度设置:辅种间隔(默认 6 小时)与本地数据目录
- 保存后进入 仪表盘,点击「立即辅种」跑一轮,卡片会实时反映结果
一次辅种轮次的完整链路
① collector 从 qB/TR 提取本地 info_hash 集合
② matcher a. 本地回填:扫描监控目录中同 hash 的 .torrent 直接回填
b. PSI 查询:盲化集合向在线节点求交,拿回跨站映射记录
③ sitesearch 按「标题 + 字节数」在你自己的站点检索对应资源
④ verify 下载 .torrent 并校验 info_hash 与记录一致,杜绝张冠李戴
⑤ push 校验数据目录完整后推送给下载器,探测做种状态
⑥ store 全部结果落库 SQLite,供仪表盘展示与去重
映射记录只包含 (hash_A ↔ hash_B, 字节数, 资源标题) 且附节点 Ed25519 签名;
查询过程使用两轮 ECDH 盲化交换,服务端无法得知你拥有哪些非命中资源。
信任模型与当前限制
- 映射记录由贡献节点签名;未配置可信公钥时默认接受全部通过结构校验的记录(公测期策略),生产部署建议在
network.trusted_keys_path配置信任锚 - 站点解析目前仅承诺 NexusPHP 风格表格布局,其他程序需等待模板仓库适配
- PSI 直查为单帧全量密封返回,超大映射网络下的带宽优化在路线图中
本地构建与环境验证
环境要求:Go 1.26+、Node.js 22+、PowerShell(Windows)或 pwsh(Linux/macOS)
# 一键等价验证 Dockerfile 全部构建步骤(无 Docker 也可跑)
pwsh scripts/verify-local.ps1
# 后端测试
go test ./...
# 前端开发与构建
cd web
npm install
npm run dev # 开发模式
npm run build # 产物输出到 internal/web/dist
# 本地起守护
go run ./cmd/seedpilot serve --config config.yaml版本发布流程
推送 v* 标签即自动触发 GitHub Actions:
- 构建并推送多架构镜像至 GHCR 与 Docker Hub
- 构建 linux / windows / darwin × amd64 / arm64 六平台二进制并附加到 Release
git tag -s v0.1.x -m "..."
git push origin v0.1.x本项目仅供学习与技术交流使用。使用者应确保自身行为符合所在地区法律法规及 PT 站点社区规则; 因使用本工具产生的任何账号、法律或其他风险由使用者自行承担。
本项目基于 MIT License 开源。
Made with ❤ by f1owkang