このプロジェクトについて

OpenPTは、プライベートトラッカー(PT)のシーディングシナリオを目的とした、軽量で設定駆動型のBitTorrentトラッカー通知ツールです。これは.torrentファイルのみで動作し、実際のコンテンツをダウンロードする必要はありません。プログラムは、シーディングステータス、アップロード量、ポート、およびクライアント識別情報をトラッカーに定期的に報告するクライアントをシミュレートします。データを転送するのではなく数値を報告するため、これはBitTorrentクライアントではなくシーディングシミュレーションユーティリティであり、トラッカーのルールや利用規約の遵守はオペレーターの責任となります。 ドキュメント化された機能には、torrentディレクトリの自動スキャンと.torrentファイルの読み込み、同時シーディング数の設定可能な制限(0は無制限)、qBittorrent、Transmission、Deluge、uTorrent用のクライアントなりすましファイル、ジッターとリフレッシュ間隔を備えた3つのアップロード戦略(none、conservative_rate、configured_rate)、トラッカーから返されたピアから動的に割り当てられるアップロード速度、目標シェア比率への到達による torrent の停止、通知失敗後の指数バックオフリトライ、HTTP、HTTPS、UDPトラッカーのサポート、BitTorrent v1、ハイブリッド、v2専用のinfoハッシュ、破損または解析不能なtorrentファイルの自動アーカイブ、再起動後に再開可能なアップロード合計と完了状態の永続化、torrentファイル削除時の通知停止、およびPrometheus形式のメトリクスとヘルスチェックエンドポイントが含まれます。 展開方法は、locallyでビルドしたバイナリを openpt --config config.toml として起動するか、公開されているDockerイメージ chenbin3625/openpt をPUID/PGIDマッピングとtorrentsディレクトリを含む ./data ボリュームを用いてDocker Composeで実行することです。設定はTOML形式で、examples/config.example.toml からコピーして使用し、simultaneous_seed、client、torrents_dir、clients_dir、archive_dir、state_file、スキャン間隔、シャットダウン停止タイムアウト、アップロード戦略とレート境界、ratio_target、通知ポート/IP/IPv6、トラッカータイムアウト、プロキシ(HTTPまたはSOCKS5で、HTTP/HTTPSトラッカーのみに使用され、UDPトラッカーの場合は明確なエラーを返す)、バックオフ制限、メトリクスリスンアドレスとパス、およびログ出力などをカバーしています。 組み込みのWeb UIはVite、React、antdで記述され、go:embedを通じてバイナリに埋め込まれています。ビルド済みのフロントエンド出力がコミットされているため、クローン後すぐにGoツールチェーンでビルドまたはテストが可能です。UIでは、アクティブおよび異常なtorrent数、現在のアップロード速度、合計アップロード量、次回通知時間、torrentごとのサイズ、アップロード量、速度、ピア、シェア比率、前回/次回通知時間と間隔、トラッカーホストとスイッチインデックス、およびステータスとエラーの詳細が表示され、列ソート、ステータスフィルタリング、名前またはトラッカーによる検索が可能です。メトリクスリスナーは /metrics と /healthz も提供し、/healthz は metrics.enabled が false の場合でも利用可能です。SIGHUPを送信すると、設定の一部(同時シーディング数、アップロード戦略とレート、比率目標、シャットダウン停止タイムアウト、通知ポート/IP/IPv6、トラッカータイムアウト、プロキシ、バックオフ)がホットリロードされます。一方、クライアントなりすましファイル、ディレクトリ、状態ファイル、スキャン間隔、ログファイル、およびメトリクス/Web UIオプションの変更には再起動が必要です。 デフォルトで announce.port = 0 とすると、6881などの一般的なデフォルトを再利用するのではなく、起動ごとに 49152-65535 の範囲でランダムな動的ポートが生成されます。本プロジェクトはMITライセンスの下でリリースされています。