uhub, जिसका उच्चारण "यू हब" है, Jan Vidar Krey द्वारा बनाया गया मुक्त-स्रोत Direct Connect हब सर्वर है। इसका विकास 2007 से जारी है और यह परियोजना GNU General Public License संस्करण 3 के अंतर्गत जारी की गई है। यह C में लिखा गया है और विशेष रूप से उन समुदायों के लिए बनाया गया है जो DC++, AirDC++ और अन्य आधुनिक Direct Connect अनुप्रयोगों जैसे ADC-संगत क्लाइंट इस्तेमाल करते हैं।
हब Direct Connect समुदाय का मिलन-बिंदु होता है। uhub जुड़े हुए उपयोगकर्ताओं का लेखा रखता है, सार्वजनिक और निजी चैट अग्रेषित करता है, खोज और खोज परिणाम वितरित करता है, पहुँच नियम लागू करता है और क्लाइंटों को एक-दूसरे से सीधे कनेक्शन बनाने में सहायता देता है। वास्तविक फ़ाइलें uhub से होकर नहीं जातीं। जब दो उपयोगकर्ता फ़ाइल का आदान-प्रदान तय करते हैं, तो स्थानांतरण सामान्यतः उनके क्लाइंटों के बीच सीधे होता है। इसी कारण अपेक्षाकृत छोटा सर्वर अपने आप रिले कर सकने की मात्रा से कहीं अधिक फ़ाइल-साझाकरण गतिविधि का समन्वय कर सकता है।
यह ब्राउज़र-आधारित या सर्वर पर होस्ट किए गए क्लाइंटों के लिए भी महत्वपूर्ण है। वेब क्लाइंट को uhub से जोड़ने पर चैट, उपयोगकर्ता सूची और खोज की सुविधा मिल सकती है, पर इससे समकक्ष-से-समकक्ष स्थानांतरण साधारण वेब डाउनलोड नहीं बन जाते। वेब क्लाइंट या उसकी सहायक सेवा को फिर भी क्लाइंट-से-क्लाइंट स्थानांतरण की प्रक्रिया लागू करनी होती है। uhub उपयोगकर्ताओं और उनके कनेक्शन अनुरोधों का समन्वय करता है; यह न फ़ाइल-भंडारण सेवा है, न डाउनलोड प्रॉक्सी, न वेब सर्वर।
uhub कम स्मृति उपयोग वाले छोटे, घटना-चालित मूल ढाँचे के आसपास बनाया गया है। निजी हब साधारण हार्डवेयर पर चल सकता है, जिसमें छोटे Linux सिस्टम और अंतर्निर्मित उपकरण शामिल हैं, जबकि बड़े संस्थापन अधिक सक्षम सर्वरों पर हजारों जुड़े उपयोगकर्ताओं को सेवा दे सकते हैं। यह IPv4 और IPv6, एन्क्रिप्टेड कनेक्शन, पंजीकृत खाते, ऑपरेटर अनुमतियाँ, प्रतिबंध, बाढ़-रोध, वैकल्पिक प्लगइन, निगरानी और समुदाय के बढ़ने पर हब को विस्तृत करने के कई तरीके समर्थित करता है।
परियोजना चरणों में विकसित हुई है। संस्करण 0.5.0 वर्ष 2014 में Linux, macOS, BSD और Solaris के लिए पोर्टेबल स्रोत के रूप में जारी हुआ था। 2026 में विकास फिर तेज हुआ। संस्करण 0.6.0 ने परियोजना की TLS आवश्यकताओं और प्लगइन इंटरफ़ेस का आधुनिकीकरण किया। संस्करण 0.7.0 ने निगरानी, बहु-प्रक्रिया संचालन और कई uhub संस्थापनों को एक तार्किक हब में जोड़ने की क्षमता जोड़ी। संस्करण 0.7.1 ने उपयोगकर्ता आदेशों, प्रमाणीकरण, कनेक्शन सीमाओं और सुरक्षा जाँचों को बेहतर किया। संस्करण 0.8.0 ने सैंडबॉक्स JavaScript प्लगइन, अधिक समृद्ध चैट स्वरूपण, विस्तृत मॉडरेशन, स्व-सेवा खाता उपकरण, निष्क्रिय कनेक्शनों की तेज पहचान और Windows बिल्ड की वापसी जोड़ी।
आधिकारिक परियोजना अभी भी uhub को अत्यावश्यक सेवा मंच के बजाय अल्फा-स्तर का सॉफ़्टवेयर बताती है। इसका अर्थ यह नहीं कि यह केवल प्रदर्शन के लिए है, लेकिन किसी महत्वपूर्ण सार्वजनिक समुदाय को इस पर निर्भर करने से पहले ऑपरेटर को चुनी हुई रिलीज़, प्लगइन, क्लाइंट, बैकअप प्रक्रिया और अपग्रेड विधि अवश्य जाँचनी चाहिए।
ADC और ADCS संचालन
uhub उन समुदायों को सेवा देता है जो आधुनिक Direct Connect प्रोटोकॉल ADC का उपयोग करते हैं। उपयोगकर्ता ADC-संगत क्लाइंट से जुड़ते हैं और adc:// या adcs:// से आरंभ होने वाला पता दर्ज करते हैं। ADC सामान्य हब कनेक्शन देता है, जबकि ADCS क्लाइंट और हब के बीच TLS एन्क्रिप्शन जोड़ता है।
एन्क्रिप्टेड ADCS कनेक्शन खाता प्रमाणीकरण, चैट, खोज, उपयोगकर्ता जानकारी और हब के साथ बदले जाने वाले अन्य यातायात को सुरक्षित करता है। यह फ़ाइल को uhub के रास्ते से भेज कर एन्क्रिप्ट नहीं करता। प्रत्यक्ष फ़ाइल स्थानांतरण क्लाइंटों के बीच अलग कनेक्शन रहते हैं और उनकी क्षमताओं तथा सेटिंग पर निर्भर होते हैं।
ऑपरेटर एन्क्रिप्टेड और अनएन्क्रिप्टेड दोनों कनेक्शन की अनुमति दे सकता है या ADCS अनिवार्य कर सकता है। uhub के वर्तमान संस्करण OpenSSL या LibreSSL के माध्यम से TLS 1.2 और TLS 1.3 का समर्थन करते हैं। प्रकाशित हब पता, होस्टनाम, प्रमाणपत्र और सुनने वाला पोर्ट एक ही सेवा की ओर संकेत करने चाहिए। सर्वर मूल नेटवर्क कनेक्शन स्वीकार कर सकता है, फिर भी बाद के TLS हैंडशेक, लॉगिन, खाता प्रमाणीकरण या ADC वार्ता को अस्वीकार कर सकता है।
uhub IPv4 और IPv6 दोनों का समर्थन करता है और उपलब्ध होने पर IPv6 को प्राथमिकता दे सकता है। इससे एक समुदाय दोनों प्रकार के नेटवर्क के उपयोगकर्ताओं को सेवा दे सकता है, हालांकि प्रत्यक्ष स्थानांतरण फिर भी इस पर निर्भर हैं कि दोनों क्लाइंट संगत मार्ग बना सकते हैं या नहीं। uhub में NAT-संबंधित कनेक्शन समन्वय का समर्थन भी है, पर वह उपयोगकर्ता के फ़ायरवॉल, राउटर, प्रदाता की पाबंदियों या गलत रूप से विन्यस्त क्लाइंट को नहीं बदल सकता।
सार्वजनिक ऑपरेटर हब का नाम, वर्णन, मालिक, वेबसाइट, नेटवर्क का नाम और प्रकाशित पता दे सकता है। uhub किसी संगत hublist पंजीकरण सेवा को भी अपनी घोषणा कर सकता है। निजी हब पंजीकरण निष्क्रिय रखकर केवल आमंत्रित या पंजीकृत उपयोगकर्ताओं को स्वीकार कर सकते हैं।
संचालन और विस्तार
- छोटे और बड़े समुदाय: डिफ़ॉल्ट संस्थापन एक घटना-चालित प्रक्रिया के रूप में चलता है और कई निजी तथा सार्वजनिक हबों के लिए उपयुक्त है। ऑपरेटर अधिकतम उपयोगकर्ता संख्या चुन सकता है, तय कर सकता है कि अतिथियों को अनुमति है या नहीं, पंजीकृत खाते आवश्यक कर सकता है, एक पते से आने वाले कनेक्शन सीमित कर सकता है और न्यूनतम साझेदारी, अपलोड स्लॉट, खोज शब्द या उपयोगकर्ता के अन्य हबों से कनेक्शन की संख्या के नियम लगा सकता है।
- खाते और मॉडरेशन: प्रमाणीकरण प्लगइन सदस्यों, ऑपरेटरों और प्रशासकों के लिए पंजीकृत खाते दे सकते हैं। सक्रिय प्लगइन के अनुसार, उपयोगकर्ताओं को ऑपरेटर पंजीकृत कर सकता है या वे स्वयं पंजीकरण कर सकते हैं। मॉडरेशन में उपनाम, CID और IP पाबंदियाँ; अस्थायी या स्थायी प्रतिबंध; प्रतिबंध के कारण; चैट पाबंदियाँ; बाढ़ नियंत्रण; हाल के उपयोगकर्ता की जानकारी; विषय प्रबंधन और ऑपरेटर आदेश शामिल हैं। संस्करण 0.8.0 ने पंजीकृत खातों को पुरानी पहुँच-नियंत्रण फ़ाइल से प्रमाणीकरण प्लगइन में स्थानांतरित किया, इसलिए मौजूदा संस्थापनों को अपग्रेड के समय वे अभिलेख स्थानांतरित करने होंगे।
- चैट और सामुदायिक सुविधाएँ: uhub मुख्य चैट का विन्यस्त किया जा सकने वाला हालिया इतिहास रख सकता है, स्वागत संदेश दिखा सकता है, हब नियम प्रकाशित कर सकता है, संगत क्लाइंटों में आदेश दिखा सकता है और खाता स्तर के अनुसार चैट या निजी संदेश सीमित कर सकता है। संस्करण 0.8.0 ने RTF0 रिच-टेक्स्ट विस्तार जोड़ा। इसका समर्थन करने वाले क्लाइंट स्वरूपित चैट, संदेश और दूरस्थ चित्र दिखा सकते हैं, जबकि पुराने क्लाइंट को सादा पाठ मिलता रहता है। जो ऑपरेटर क्लाइंटों से बाहरी URL के चित्र लोड नहीं कराना चाहते, वे यह सुविधा बंद कर सकते हैं।
- एक से अधिक CPU कोर का उपयोग: uhub डिफ़ॉल्ट रूप से एकल-प्रक्रिया मोड में चलता है। बड़ा संस्थापन
workersको एक से अधिक मान पर सेट कर सकता है ताकि कई कार्यकर्ता प्रक्रियाएँ एक ही सुनने वाला पोर्ट साझा करें और उपयोगकर्ताओं को एक हब दिखाई दे।workers=0सेट करने पर हर उपलब्ध CPU कोर के लिए एक कार्यकर्ता चुना जाता है। जब एन्क्रिप्शन या बहुत अधिक कनेक्शन के कारण एक प्रक्रिया सीमा बन जाए, तब यह उपयोगी है। उपयोगकर्ताओं को अलग-अलग कार्यकर्ताओं के लिए अलग पते नहीं चाहिए। - मशीनों के बीच हब जोड़ना: फ़ेडरेशन अलग uhub संस्थापनों को जोड़ता है और उन्हें एक बड़े समुदाय जैसा बनाता है। अलग नोड से जुड़े उपयोगकर्ता एक दिखने वाली उपयोगकर्ता सूची साझा कर सकते हैं, आपस में चैट कर सकते हैं, निजी संदेश बदल सकते हैं, खोज कर सकते हैं, खोज परिणाम पा सकते हैं और नोड सीमाओं के पार प्रत्यक्ष स्थानांतरण स्थापित कर सकते हैं। विषय और सक्रिय प्रतिबंध भी प्रसारित हो सकते हैं। फ़ेडरेशन अभी प्रयोगात्मक रूप में प्रलेखित है और विश्वसनीय प्रणालियों के लिए है। ऑपरेटर को इसकी सीमाएँ समझनी चाहिए, पुनःकनेक्शन और विभाजित नेटवर्क का व्यवहार जाँचना चाहिए तथा जुड़े सर्वरों के साझा प्रमाण-पत्र सुरक्षित रखने चाहिए।
- प्लगइन: uhub कई वैकल्पिक सुविधाओं को अपने मूल भाग के बाहर रखता है और प्लगइन के माध्यम से लोड करता है। साथ दिए गए प्लगइन SQLite या फ़ाइल-आधारित प्रमाणीकरण, लॉगिंग, चैट इतिहास, स्वागत संदेश, विषय आदेश, स्व-पंजीकरण, बाढ़ प्रतिक्रियाएँ, आदेश मेनू और प्रतिबंधित चैट दे सकते हैं। मूल C प्लगइन को चल रहे हब तक व्यापक पहुँच होती है और उन्हें स्थापित रिलीज़ के प्लगइन API से मेल खाना चाहिए। संस्करण 0.8.0 ने QuickJS के माध्यम से JavaScript प्लगइन भी जोड़े। JavaScript विस्तार साधारण फ़ाइलसिस्टम या नेटवर्क पहुँच के बिना प्रतिबंधित वातावरण में चलते हैं, इसलिए वे C कोड संकलित किए बिना अनेक अनुकूलित आदेशों और घटना-आधारित सुविधाओं के लिए उपयुक्त हैं।
- निगरानी: संस्करण 0.7.0 ने वैकल्पिक Prometheus-संगत मेट्रिक एंडपॉइंट जोड़ा। यह जुड़े उपयोगकर्ताओं, कनेक्शनों, स्थानांतरित हब यातायात, संदेशों की संख्या और घटना-लूप समय का विवरण दे सकता है। एंडपॉइंट डिफ़ॉल्ट रूप से निष्क्रिय है और बेयरर टोकन मांगता है। ऑपरेटर को इसे HTTPS, लूपबैक या विश्वसनीय प्रबंधन नेटवर्क से प्राप्त करना चाहिए, क्योंकि सादे HTTP पर टोकन भेजने से वह उजागर हो सकता है।
- कनेक्शन पुनर्प्राप्ति: वर्तमान रिलीज़ निष्क्रिय कनेक्शनों की समय-समय पर जाँच करती हैं, ताकि जिन उपयोगकर्ताओं का नेटवर्क सत्र साफ़ डिस्कनेक्ट के बिना गायब हो गया हो, उन्हें शीघ्र हटाया जा सके। इससे वे स्थितियाँ घटती हैं जिनमें पुनःकनेक्ट करने वाला क्लाइंट इसलिए अस्वीकार होता है कि हब उसके पुराने सत्र को अभी सक्रिय मानता है। यह सुविधा बाधित Wi-Fi, NAT, फ़ायरवॉल और क्लाइंट कनेक्शनों से पुनर्प्राप्ति सुधारती है, सामान्य सक्रिय उपयोगकर्ताओं के व्यवहार को बदले बिना।
- स्थापना और प्लेटफ़ॉर्म: आधिकारिक रिपॉज़िटरी स्रोत कोड और रिलीज़ पैकेज देता है। वर्तमान प्रलेखन Linux, macOS, BSD और Windows को कवर करता है तथा सामान्य x86-64 और ARM64 प्रणालियों के लिए पैकेज देता है। Debian और Ubuntu उपयोगकर्ता परियोजना द्वारा जोड़ी गई समुदाय-संरक्षित पैकेज रिपॉज़िटरी का भी उपयोग कर सकते हैं। स्रोत से निर्माण करने वाले ऑपरेटर को वर्तमान C कंपाइलर, CMake, SQLite विकास फ़ाइलें और समर्थित OpenSSL या LibreSSL संस्करण चाहिए।
- विन्यास और बैकअप: मुख्य सेटिंग
uhub.confमें रहती हैं, जबकि खाते का डेटा, पहुँच नियम, प्लगइन, प्रमाणपत्र और संबंधित फ़ाइलें अलग रखी जा सकती हैं। पूर्ण बैकअप में ये सभी, स्थापित रिलीज़, सेवा परिभाषा और प्लगइन संस्करण शामिल होने चाहिए। अपग्रेड से पहले नए संस्करण को किसी अन्य पोर्ट या प्रणाली पर जाँचें और लॉगिन, खाते, मॉडरेशन, चैट, खोज, प्लगइन, TLS, निगरानी, पुनरारंभ व्यवहार और क्लाइंट संगतता की पुष्टि करें।
आधिकारिक uhub संसाधन
आधिकारिक uhub वेबसाइट, प्रलेखन, समाचार संग्रह, रिपॉज़िटरी, रिलीज़ और समस्या ट्रैकर परियोजना के बारे में सबसे विश्वसनीय जानकारी देते हैं। स्थापित संस्करण से मेल खाता प्रलेखन इस्तेमाल करें, क्योंकि विन्यास, प्रमाणीकरण, प्लगइन, मॉडरेशन और विस्तार व्यवहार में 0.6, 0.7 और 0.8 रिलीज़ शृंखलाओं के दौरान बड़े बदलाव हुए हैं।
GitHub रिपॉज़िटरी में स्रोत कोड, उदाहरण विन्यास, प्लगइन उदाहरण, निर्माण निर्देश, परीक्षण और पूरा परिवर्तन इतिहास है। जो पाठक स्रोत कोड पढ़े बिना हब स्थापित या संचालित करना चाहते हैं, उनके लिए प्रलेखन साइट अधिक उपयुक्त है। पुनरुत्पादित किए जा सकने वाले सॉफ़्टवेयर दोष और सुविधा अनुरोध समस्या ट्रैकर में सटीक रिलीज़, ऑपरेटिंग सिस्टम, विन्यास विवरण, संबंधित प्लगइन, लॉग और समस्या दोहराने के चरणों के साथ भेजे जाने चाहिए।
| लेबल | लिंक | विवरण |
|---|---|---|
| uhub परियोजना वेबसाइट | https://www.uhub.org/ | uhub क्या करता है, वह किसके लिए है, समर्थित सुविधाओं, डाउनलोड और वर्तमान परियोजना कड़ियों का आधिकारिक परिचय। |
| uhub प्रलेखन | https://www.uhub.org/doc/ | स्थापना, विन्यास, TLS, प्लगइन, निगरानी, हब जोड़ने, वास्तुकला और विकास का प्रलेखन सूचकांक। |
| आरंभ करें | https://www.uhub.org/doc/getstarted.html | uhub का निर्माण या स्थापना करने, विन्यास बनाने, सेवा शुरू करने, क्लाइंट जोड़ने, उपयोगकर्ता पंजीकृत करने और अनेक कार्यकर्ता सक्षम करने का चरण-दर-चरण परिचय। |
| विन्यास संदर्भ | https://www.uhub.org/doc/config.html | श्रोताओं, हब पहचान, उपयोगकर्ता सीमाओं, बाढ़ नियंत्रण, TLS, निगरानी, फ़ाइलों, कार्यकर्ताओं और फ़ेडरेशन सहित हर समर्थित सेटिंग का खोजा जा सकने वाला संदर्भ। |
| हब जोड़ना और फ़ेडरेशन | https://www.uhub.org/doc/linking.html | बताता है कि एक हब कई CPU कोर कैसे उपयोग कर सकता है और अलग uhub इंस्टेंस मशीनों के बीच कैसे जोड़े जा सकते हैं, साथ ही वर्तमान सीमाएँ और सुरक्षा विचार भी। |
| प्लगइन प्रलेखन | https://www.uhub.org/doc/plugins/index.html | प्रमाणीकरण, लॉगिंग, चैट इतिहास, स्वागत संदेश, मॉडरेशन, पंजीकरण और अन्य वैकल्पिक व्यवहार के साथ दिए गए प्लगइन का सूचकांक। |
| TLS प्रलेखन | https://www.uhub.org/doc/config-ssl.html | OpenSSL या LibreSSL के साथ प्रमाणपत्र और एन्क्रिप्टेड ADCS कनेक्शन विन्यस्त करने के निर्देश। |
| निगरानी प्रलेखन | https://www.uhub.org/doc/metrics.html | वैकल्पिक Prometheus एंडपॉइंट, उपलब्ध आँकड़ों, प्रमाणीकरण टोकन और अनुशंसित सुरक्षित पहुँच की व्याख्या। |
| परियोजना समाचार और रिलीज़ इतिहास | https://www.uhub.org/news.html | तारीख वाले परियोजना घोषणापत्र, जो uhub 0.5, 0.6, 0.7 और 0.8 में आए प्रमुख बदलाव बताते हैं। |
| uhub स्रोत रिपॉज़िटरी | https://github.com/janvidar/uhub | आधिकारिक स्रोत कोड, निर्माण निर्देश, नमूना विन्यास, प्लगइन, परीक्षण, तकनीकी प्रलेखन, लाइसेंस और योगदान जानकारी। |
| uhub रिलीज़ | https://github.com/janvidar/uhub/releases | संस्करणित रिलीज़ पैकेज और विस्तृत टिप्पणियाँ, जिनमें नई सुविधाएँ, अपग्रेड आवश्यकताएँ, सुरक्षा सुधार और संगतता बदलाव बताए गए हैं। |
| uhub समस्या ट्रैकर | https://github.com/janvidar/uhub/issues | पुनरुत्पादित किए जा सकने वाले दोष दर्ज करने, सुविधाएँ माँगने और ज्ञात परियोजना समस्याएँ देखने का आधिकारिक स्थान। |
| uhub Dev Central | adcs://adc.uhub.org:1511 | uhub कॉन्फ़िगरेशन, प्लगइन, ADC व्यवहार, इंटरऑपरेबिलिटी और वर्तमान विकास बिल्ड। |
टिप्पणियाँ
अभी कोई टिप्पणी नहीं है। बातचीत शुरू करें।