这个项目能做什么
OpenPT 是一款轻量级、配置驱动的 BitTorrent tracker announce 工具,旨在用于私有种子站 (PT) 的保种场景。它仅依赖 .torrent 文件工作:无需下载实际内容,程序通过模拟客户端定期向 tracker 报告保种状态、上传量、端口和客户端身份。由于它报告的是数值而非传输实际数据,因此它是一个保种模拟实用程序而非 BitTorrent 客户端;tracker 规则和可接受使用政策仍由操作者自行负责。
其文档记录的功能包括:自动扫描 torrents 目录并加载 .torrent 文件;可配置的并发保种数量限制(0 表示无限制);支持 qBittorrent、Transmission、Deluge 和 uTorrent 的客户端伪装文件;三种上传策略(none、conservative_rate、configured_rate),并带有抖动和刷新间隔;上传速度根据 tracker 返回的 peers 动态分配;达到目标分享率后停止该 torrent;announce 失败后执行指数退避重试;支持 HTTP、HTTPS 和 UDP tracker;支持 BitTorrent v1、混合模式和仅 v2 的 info hashes;自动归档损坏或无法解析的 torrent 文件;持久化存储上传总量和完成状态以便重启后恢复;在 torrent 文件被删除时停止 announce;以及 Prometheus 格式的指标和健康检查端点。
部署方式包括:运行本地构建的二进制文件 `openpt --config config.toml`,或使用发布的 Docker 镜像 `chenbin3625/openpt` 通过 Docker Compose 运行(支持 PUID/PGID 映射及包含 torrents 目录的 `./data` 卷)。配置采用 TOML 格式,可从 `examples/config.example.toml` 复制,涵盖了 simultaneous_seed、client、torrents_dir、clients_dir、archive_dir、state_file、扫描间隔、关闭停止超时、上传策略与速率范围、ratio_target、announce 端口/IP/IPv6、tracker 超时、代理(HTTP 或 SOCKS5,仅用于 HTTP/HTTPS tracker,UDP tracker 将返回明确错误)、退避限制、指标监听地址与路径以及日志输出。
内置的 Web UI 使用 Vite、React 和 antd 编写,并通过 `go:embed` 嵌入到二进制文件中;构建后的前端输出已提交,因此新鲜克隆的代码可以使用 Go 工具链直接构建或测试。UI 显示活跃和异常的 torrent 数量、当前上传速度、总上传量、下次 announce 时间、单个 torrent 的大小、已上传量、速度、peers 和分享率、上次/下次 announce 时间及间隔、tracker 主机和切换索引,以及状态和错误详情,并支持列排序、状态过滤以及按名称或 tracker 搜索。指标监听器还提供 `/metrics` 和 `/healthz` 接口;即使 `metrics.enabled` 为 false,`/healthz` 依然可用。发送 SIGHUP 信号可热加载部分设置(并发保种数、上传策略与速率、分享率目标、关闭停止超时、announce 端口/IP/IPv6、tracker 超时、代理和退避),而客户端伪装文件、目录、状态文件、扫描间隔、日志文件以及指标/Web UI 选项则需要重启。
默认情况下,`announce.port = 0` 会在每次启动时在 49152-65535 范围内生成一个随机动态端口,而不是重复使用 6881 等常见默认端口。该项目基于 MIT 许可证发布。
评论
0 评分人数达到10人后显示
登录后参与讨论。