uhub, pronunțat „you hub”, este un server hub Direct Connect cu sursă deschisă creat de Jan Vidar Krey. Dezvoltarea datează din 2007, iar proiectul este distribuit sub GNU General Public License versiunea 3. Este scris în C și este conceput special pentru comunități care folosesc clienți compatibili ADC, precum DC++, AirDC++ și alte aplicații Direct Connect moderne.
Un hub este punctul de întâlnire al unei comunități Direct Connect. uhub urmărește utilizatorii conectați, retransmite chatul public și privat, distribuie căutări și rezultate, aplică reguli de acces și ajută clienții să stabilească conexiuni directe între ei. Fișierele propriu-zise nu trec prin uhub. Când doi utilizatori hotărăsc să schimbe un fișier, transferul are loc de regulă direct între clienții lor. Această distincție permite unui server relativ mic să coordoneze mult mai multă activitate de partajare decât ar putea retransmite singur.
Acest lucru contează și pentru clienții bazați pe browser sau găzduiți pe server. Conectarea unui client web la uhub poate oferi chat, liste de utilizatori și căutare, dar nu transformă automat transferurile peer-to-peer în descărcări web obișnuite. Clientul web ori serviciul care îl sprijină trebuie în continuare să implementeze transferul client-la-client. uhub coordonează utilizatorii și cererile lor de conectare; nu este un serviciu de stocare a fișierelor, un proxy de descărcare sau un server web.
uhub este construit în jurul unui nucleu mic, orientat pe evenimente, cu consum redus de memorie. Un hub privat poate rula pe hardware modest, inclusiv pe sisteme Linux mici și dispozitive integrate, iar instalațiile mai mari pot deservi mii de utilizatori pe servere mai puternice. Acceptă IPv4 și IPv6, conexiuni criptate, conturi înregistrate, permisiuni de operator, banuri, protecție flood, pluginuri opționale, monitorizare și mai multe căi de extindere a hubului odată cu comunitatea.
Proiectul s-a dezvoltat în etape. Versiunea 0.5.0 a apărut în 2014 ca sursă portabilă pentru Linux, macOS, BSD și Solaris. Dezvoltarea s-a accelerat din nou în 2026. Versiunea 0.6.0 a modernizat cerințele TLS și interfața pluginurilor. Versiunea 0.7.0 a adăugat monitorizarea, funcționarea multiproces și posibilitatea de a lega mai multe instalații uhub într-un hub logic. Versiunea 0.7.1 a îmbunătățit comenzile utilizatorilor, autentificarea, limitele de conexiuni și verificările de securitate. Versiunea 0.8.0 a adăugat pluginuri JavaScript izolate, formatare mai bogată pentru chat, moderare extinsă, instrumente self-service pentru conturi, detectarea mai rapidă a conexiunilor moarte și a restaurat buildurile Windows.
Proiectul oficial descrie încă uhub ca software aflat în stadiu alfa, nu ca platformă pentru servicii critice. Aceasta nu înseamnă că este doar o demonstrație, însă un operator trebuie să testeze release-ul ales, pluginurile, clienții, procesul de backup și procedura de upgrade înainte de a se baza pe el pentru o comunitate publică importantă.
Operare ADC Și ADCS
uhub deservește comunități care utilizează ADC, protocolul Direct Connect modern. Utilizatorii se conectează cu un client compatibil ADC și introduc o adresă care începe cu adc:// sau adcs://. ADC oferă conexiunea obișnuită la hub, iar ADCS adaugă criptarea TLS între client și hub.
O conexiune ADCS criptată protejează autentificarea contului, chatul, căutările, informațiile despre utilizatori și restul traficului schimbat cu hubul. Nu criptează un fișier prin rutarea lui prin uhub. Transferurile directe de fișiere rămân conexiuni separate între clienți și depind de capacitățile și setările lor.
Operatorii pot permite conexiuni criptate și necriptate sau pot cere ADCS. Versiunile actuale uhub acceptă TLS 1.2 și TLS 1.3 prin OpenSSL ori LibreSSL. Adresa publicată a hubului, hostname-ul, certificatul și portul de ascultare trebuie să se refere la același serviciu. Un server poate accepta o conexiune de rețea de bază și apoi poate refuza handshake-ul TLS, autentificarea, loginul contului sau negocierea ADC.
uhub acceptă IPv4 și IPv6 și poate prefera IPv6 dacă este disponibil. Astfel, o comunitate poate servi ambele tipuri de rețea, deși transferurile directe depind în continuare de capacitatea celor doi clienți de a stabili o rută compatibilă. uhub sprijină și coordonarea conexiunilor legate de NAT, dar nu poate ocoli firewallul, routerul, restricțiile furnizorului sau un client configurat greșit.
Un operator public poate furniza numele, descrierea, proprietarul, site-ul, numele rețelei și adresa publicată a hubului. uhub se poate anunța și la un serviciu compatibil de înregistrare hublist. Huburile private pot lăsa înregistrarea dezactivată și pot accepta numai utilizatori invitați sau înregistrați.
Operațiuni Și Extensii
- Comunități Mici Și Mari: Instalarea implicită rulează ca un proces orientat pe evenimente și se potrivește multor huburi private și publice. Operatorul alege maximumul de utilizatori, accesul invitaților, conturile obligatorii, limitele pe adresă și regulile pentru share minim, sloturi de upload, termeni de căutare ori numărul altor huburi la care se poate conecta un utilizator.
- Conturi Și Moderare: Pluginurile de autentificare pot furniza conturi înregistrate membrilor, operatorilor și administratorilor. În funcție de pluginurile active, utilizatorii sunt înregistrați de operator sau se pot înregistra singuri. Moderarea cuprinde restricții după nickname, CID și IP, banuri temporare sau permanente, motive de ban, limite de chat, controale flood, informații despre utilizatorii recenți, gestionarea subiectelor și comenzi de operator. Versiunea 0.8.0 a mutat conturile înregistrate din vechiul fișier de control al accesului în pluginurile de autentificare; instalațiile existente trebuie să migreze aceste înregistrări la upgrade.
- Chat Și Funcții Comunitare: uhub poate păstra o cantitate configurabilă de istoric al chatului principal, poate afișa mesaje de bun venit, publica reguli ale hubului, expune comenzi în clienți compatibili și limita chatul sau mesajele private după nivelul contului. Versiunea 0.8.0 a adăugat extensia rich-text RTF0. Clienții care o acceptă afișează chat, mesaje și imagini la distanță formatate, iar clienții vechi continuă să primească text simplu. Operatorii pot dezactiva încărcarea imaginilor de la URL-uri externe.
- Folosirea Mai Multor Nuclee CPU: uhub rulează implicit într-un singur proces. O instalație mai mare poate seta
workerspeste unu pentru ca mai multe procese worker să împartă portul de ascultare și să apară ca un singur hub.workers=0selectează câte un worker pentru fiecare nucleu CPU disponibil. Este util când criptarea sau multe conexiuni limitează un proces; utilizatorii nu au nevoie de adrese diferite pentru workeri. - Legarea Huburilor Între Mașini: Federația conectează instalații uhub separate și le face să pară o comunitate mai mare. Utilizatorii de pe noduri diferite pot partaja o listă vizibilă, pot discuta, trimite mesaje private, căuta, primi rezultate și stabili transferuri directe peste granițele nodurilor. Se pot propaga și subiecte sau banuri active. Federația este încă experimentală și pentru sisteme de încredere; operatorul trebuie să înțeleagă limitele, să testeze reconectarea și rețeaua divizată și să protejeze credențialele comune ale serverelor legate.
- Pluginuri: uhub ține multe funcții opționale în afara nucleului și le încarcă prin pluginuri. Pluginurile incluse oferă autentificare SQLite sau bazată pe fișiere, logging, istoric de chat, mesaje de bun venit, comenzi de subiect, autoînregistrare, răspunsuri flood, meniuri de comenzi și chat restricționat. Pluginurile C native au acces larg la hubul în execuție și trebuie să se potrivească API-ului release-ului instalat. Versiunea 0.8.0 a adăugat pluginuri JavaScript prin QuickJS; extensiile JavaScript rulează restricționat, fără acces obișnuit la sistemul de fișiere sau rețea, și sunt potrivite pentru comenzi și funcții bazate pe evenimente fără compilare C.
- Monitorizare: Versiunea 0.7.0 a adăugat un endpoint de metrici compatibil Prometheus. Poate raporta utilizatori conectați, conexiuni, trafic hub transferat, număr de mesaje și timpii buclei de evenimente. Endpointul este dezactivat implicit și cere bearer token. Folosiți HTTPS, loopback sau o rețea de administrare de încredere, deoarece HTTP necriptat poate expune tokenul.
- Recuperarea Conexiunilor: Release-urile actuale verifică periodic conexiunile inactive pentru a elimina rapid utilizatorii a căror sesiune de rețea a dispărut fără deconectare curată. Aceasta reduce refuzurile la reconectare când hubul crede încă activă sesiunea veche și îmbunătățește recuperarea după Wi‑Fi, NAT, firewall sau client întrerupt, fără a schimba tratarea utilizatorilor activi normali.
- Instalare Și Platforme: Repository-ul oficial oferă cod sursă și pachete de release. Documentația acoperă Linux, macOS, BSD și Windows, cu pachete pentru sisteme x86-64 și ARM64 obișnuite. Utilizatorii Debian și Ubuntu pot folosi și repository-ul de pachete întreținut de comunitate la care proiectul face legătura. Compilarea din surse cere compilator C actual, CMake, fișiere de dezvoltare SQLite și o versiune acceptată de OpenSSL sau LibreSSL.
- Configurare Și Copii De Siguranță: Setările principale sunt în
uhub.conf, iar datele conturilor, regulile de acces, pluginurile, certificatele și fișierele aferente pot fi păstrate separat. O copie completă trebuie să le includă pe toate, plus release-ul instalat, definiția serviciului și versiunile pluginurilor. Înainte de upgrade, testați versiunea nouă pe alt port sau sistem și confirmați loginul, conturile, moderarea, chatul, căutările, pluginurile, TLS, monitorizarea, comportamentul de restart și compatibilitatea clienților.
Resurse Oficiale uhub
Site-ul oficial uhub, documentația, arhiva de știri, repository-ul, release-urile și trackerul de probleme oferă cele mai fiabile informații despre proiect. Folosiți documentația corespunzătoare versiunii instalate, deoarece configurarea, autentificarea, pluginurile, moderarea și scalarea s-au schimbat substanțial în seriile 0.6, 0.7 și 0.8.
Repository-ul GitHub conține cod sursă, configurație exemplu, exemple de pluginuri, instrucțiuni de build, teste și istoricul complet al schimbărilor. Site-ul documentației este mai potrivit pentru instalarea sau exploatarea unui hub fără citirea codului. Trimiteți defectele reproductibile și cererile de funcții prin tracker, cu release-ul exact, sistemul de operare, detalii de configurare, pluginuri relevante, loguri și pași de reproducere.
| Etichetă | Legătură | Descriere |
|---|---|---|
| Site-ul Proiectului uhub | https://www.uhub.org/ | Prezentare oficială a scopului, utilizatorilor, funcțiilor, descărcărilor și linkurilor actuale uhub. |
| Documentație uhub | https://www.uhub.org/doc/ | Index pentru instalare, configurare, TLS, pluginuri, monitorizare, legarea huburilor, arhitectură și dezvoltare. |
| Primii Pași | https://www.uhub.org/doc/getstarted.html | Pași pentru build sau instalare, configurare, pornirea serviciului, conectarea clientului, înregistrarea utilizatorilor și activarea workerilor. |
| Referință Configurare | https://www.uhub.org/doc/config.html | Referință căutabilă pentru listeners, identitatea hubului, limite, flood, TLS, monitorizare, fișiere, workeri și federație. |
| Legarea Huburilor Și Federație | https://www.uhub.org/doc/linking.html | Explică mai multe nuclee CPU și legarea instanțelor uhub între mașini, cu limite și securitate. |
| Documentație Pluginuri | https://www.uhub.org/doc/plugins/index.html | Index pentru pluginuri de autentificare, logging, istoric chat, bun venit, moderare, înregistrare și funcții opționale. |
| Documentație TLS | https://www.uhub.org/doc/config-ssl.html | Instrucțiuni pentru certificate și conexiuni ADCS criptate cu OpenSSL sau LibreSSL. |
| Documentație Monitorizare | https://www.uhub.org/doc/metrics.html | Endpoint Prometheus opțional, statistici, token de autentificare și acces sigur recomandat. |
| Știri Proiect Și Istoric Release | https://www.uhub.org/news.html | Anunțuri datate despre schimbările principale din uhub 0.5, 0.6, 0.7 și 0.8. |
| Repository Sursă uhub | https://github.com/janvidar/uhub | Cod oficial, build, configurație exemplu, pluginuri, teste, documentație tehnică, licență și contribuții. |
| Release-uri uhub | https://github.com/janvidar/uhub/releases | Pachete versionate și note despre funcții, cerințe de upgrade, remedieri de securitate și compatibilitate. |
| Tracker Probleme uhub | https://github.com/janvidar/uhub/issues | Locul oficial pentru defecte reproductibile, cereri de funcții și probleme cunoscute. |
| uhub Dev Central | adcs://adc.uhub.org:1511 | Configurare uhub, pluginuri, comportament ADC, interoperabilitate și builduri actuale de dezvoltare. |
Comentarii
Încă Nu Există Comentarii. Începe Conversația.