इस प्रोजेक्ट के बारे में
OpenPT एक हल्का, कॉन्फ़िगरेशन-संचालित BitTorrent ट्रैकर अनाउंस टूल है जिसका उद्देश्य प्राइवेट ट्रैकर (PT) सीडिंग परिदृश्य हैं। यह अकेले .torrent फ़ाइलों से काम करता है: किसी वास्तविक सामग्री डाउनलोड की आवश्यकता नहीं होती है, और प्रोग्राम समय-समय पर ट्रैकर को सीडिंग स्थिति, अपलोड की गई मात्रा, पोर्ट और क्लाइंट पहचान की रिपोर्ट करने वाले क्लाइंट का अनुकरण करता है। क्योंकि यह डेटा स्थानांतरित करने के बजाय संख्याओं की रिपोर्ट करता है, यह एक सीडिंग-सिमुलेशन यूटिलिटी है न कि BitTorrent क्लाइंट; ट्रैकर नियम और स्वीकार्य-उपयोग नीतियां ऑपरेटर की जिम्मेदारी बनी रहती हैं।
दस्तावेजी क्षमताओं में टॉरेंट निर्देशिका की स्वचालित स्कैनिंग और .torrent फ़ाइलों की लोडिंग; एक साथ सीड करने वाले सीड्स पर कॉन्फ़िगर करने योग्य सीमा (0 का अर्थ असीमित है); qBittorrent, Transmission, Deluge और uTorrent के लिए क्लाइंट स्पूफिंग फ़ाइलें; जिटर और रिफ्रेश अंतराल के साथ तीन अपलोड रणनीतियाँ (none, conservative_rate, configured_rate); ट्रैकर द्वारा लौटाए गए पीयर्स से गतिशील रूप से आवंटित अपलोड गति; एक लक्षित शेयर अनुपात जो लक्ष्य तक पहुँचने पर टॉरेंट को रोक देता है; अनाउंस विफलताओं के बाद एक्सपोनेंशियल बैकऑफ़ रिट्राय; HTTP, HTTPS और UDP ट्रैकर समर्थन; BitTorrent v1, हाइब्रिड और v2-ओनली इन्फो हैश; दूषित या अपार्सिबल टॉरेंट फ़ाइलों का स्वचालित आर्काइविंग; ताकि रीस्टार्ट के बाद इसे फिर से शुरू किया जा सके, इसलिए पर्सिस्टेड अपलोड कुल और पूर्णता स्थिति; टॉरेंट फ़ाइल हटाए जाने पर एक स्टॉप्ड अनाउंस; और Prometheus-फॉर्मेट मेट्रिक्स के साथ एक हेल्थ चेक एंडपॉइंट शामिल हैं।
डिप्लॉयमेंट पथ एक स्थानीय रूप से निर्मित बाइनरी है जिसे openpt --config config.toml के रूप में शुरू किया जाता है, या प्रकाशित Docker इमेज chenbin3625/openpt है जिसे PUID/PGID मैपिंग और टॉरेंट्स निर्देशिका वाले ./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 सक्रिय और असामान्य टॉरेंट काउंट, वर्तमान अपलोड गति, कुल अपलोड, अगला अनाउंस समय, प्रति-टॉरेंट आकार, अपलोड, गति, पीयर्स और शेयर अनुपात, पिछला/अगला अनाउंस समय और अंतराल, ट्रैकर होस्ट और स्विच इंडेक्स, साथ ही स्थिति और त्रुटि विवरण दिखाता है, जिसमें कॉलम सॉर्टिंग, स्टेटस फ़िल्टरिंग और नाम या ट्रैकर द्वारा खोज शामिल है। मेट्रिक्स लिसनर /metrics और /healthz भी सर्व करता है; /healthz तब भी उपलब्ध रहता है जब metrics.enabled फ़ॉल्स हो। SIGHUP भेजने से सेटिंग्स के एक उपसमुच्चय (simultaneous seeds, अपलोड रणनीति और दरें, अनुपात लक्ष्य, शटडाउन स्टॉप टाइमआउट, अनाउंस पोर्ट/IP/IPv6, ट्रैकर टाइमआउट, प्रॉक्सी और बैकऑफ़) हॉट-रीलोड हो जाते हैं, जबकि क्लाइंट स्पूफिंग फ़ाइलों, निर्देशिकाओं, स्टेट फ़ाइल, स्कैन अंतराल, लॉग फ़ाइल और मेट्रिक्स/Web UI विकल्पों के लिए रीस्टार्ट की आवश्यकता होती है।
डिफ़ॉल्ट रूप से announce.port = 0 6881 जैसे सामान्य डिफॉल्ट्स का पुन: उपयोग करने के बजाय प्रत्येक स्टार्टअप पर 49152-65535 रेंज में एक रैंडम डायनेमिक पोर्ट जेनरेट करता है। प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.