uhub, pronunciato «you hub», è un server hub Direct Connect a codice aperto creato da Jan Vidar Krey. Lo sviluppo risale al 2007 e il progetto è distribuito con GNU General Public License versione 3. È scritto in C ed è progettato specificamente per comunità che usano client compatibili ADC, come DC++, AirDC++ e altre applicazioni Direct Connect moderne.
Un hub è il punto di incontro di una comunità Direct Connect. uhub tiene traccia degli utenti connessi, inoltra chat pubbliche e private, distribuisce ricerche e risultati, applica regole di accesso e aiuta i client a stabilire connessioni dirette tra loro. I file veri e propri non passano attraverso uhub. Quando due utenti decidono di scambiare un file, il trasferimento avviene normalmente direttamente fra i loro client. Questa distinzione consente a un server relativamente piccolo di coordinare molta più attività di condivisione di quanto potrebbe inoltrare da solo.
Questo vale anche per client basati su browser o ospitati sul server. Collegare un client web a uhub può offrire chat, elenco utenti e ricerca, ma non trasforma automaticamente i trasferimenti peer-to-peer in normali download web. Il client web o il servizio che lo supporta deve comunque implementare il trasferimento da client a client. uhub coordina gli utenti e le loro richieste di connessione; non è un servizio di archiviazione file, un proxy di download o un server web.
uhub è costruito attorno a un piccolo core guidato dagli eventi, con basso uso di memoria. Un hub privato può funzionare su hardware modesto, inclusi piccoli sistemi Linux e dispositivi integrati, mentre installazioni maggiori possono servire migliaia di utenti su server più capaci. Supporta IPv4 e IPv6, connessioni cifrate, account registrati, permessi operatore, ban, protezione flood, plugin opzionali, monitoraggio e diversi modi di espandere l'hub quando la comunità cresce.
Il progetto si è sviluppato per fasi. La versione 0.5.0 fu pubblicata nel 2014 come sorgente portabile per Linux, macOS, BSD e Solaris. Lo sviluppo è accelerato di nuovo nel 2026. La versione 0.6.0 ha modernizzato i requisiti TLS e l'interfaccia dei plugin. La versione 0.7.0 ha aggiunto il monitoraggio, l'operazione multiprocesso e la possibilità di collegare più installazioni uhub in un hub logico. La versione 0.7.1 ha migliorato comandi utente, autenticazione, limiti di connessione e controlli di sicurezza. La versione 0.8.0 ha introdotto plugin JavaScript isolati, formattazione più ricca della chat, moderazione ampliata, strumenti self-service per gli account, rilevamento più veloce delle connessioni morte e build Windows ripristinate.
Il progetto ufficiale descrive ancora uhub come software in fase alfa e non come piattaforma di servizi mission-critical. Non significa che sia solo una dimostrazione, ma un operatore deve testare la release scelta, i plugin, i client, il processo di backup e la procedura di aggiornamento prima di farvi affidamento per una comunità pubblica importante.
Funzionamento ADC E ADCS
uhub serve comunità che usano ADC, il moderno protocollo Direct Connect. Gli utenti si collegano con un client compatibile ADC e immettono un indirizzo che inizia con adc:// o adcs://. ADC fornisce la normale connessione al hub, mentre ADCS aggiunge la cifratura TLS fra client e hub.
Una connessione ADCS cifrata protegge autenticazione degli account, chat, ricerche, informazioni utente e altro traffico scambiato con il hub. Non cifra un file instradandolo tramite uhub. I trasferimenti diretti restano connessioni separate fra client e dipendono dalle loro capacità e impostazioni.
Gli operatori possono consentire connessioni cifrate e non cifrate oppure richiedere ADCS. Le versioni correnti di uhub supportano TLS 1.2 e TLS 1.3 tramite OpenSSL o LibreSSL. Indirizzo pubblicato, hostname, certificato e porta di ascolto devono riferirsi allo stesso servizio. Un server può accettare una connessione di rete di base e rifiutare in seguito handshake TLS, login, autenticazione dell’account o negoziazione ADC.
uhub supporta IPv4 e IPv6 e può preferire IPv6 quando disponibile. Una comunità può quindi servire utenti di entrambe le reti, ma i trasferimenti diretti dipendono sempre dalla possibilità per i due client di stabilire una rotta compatibile. uhub supporta anche il coordinamento di connessioni legate al NAT, ma non può annullare firewall, router, limitazioni del provider o un client configurato in modo errato.
Un operatore pubblico può fornire nome, descrizione, proprietario, sito web, nome della rete e indirizzo pubblicato del hub. uhub può inoltre annunciarsi a un servizio di registrazione hublist compatibile. I hub privati possono lasciare disabilitata la registrazione e accettare solo utenti invitati o registrati.
Operazioni Ed Estensioni
- Comunità Piccole E Grandi: L’installazione predefinita usa un processo event-driven ed è adatta a molti hub privati e pubblici. L’operatore può scegliere massimo utenti, accesso ospiti, obbligo di account registrato, limiti per indirizzo e regole per condivisione minima, slot di upload, termini di ricerca o numero di altri hub cui un utente può collegarsi.
- Account E Moderazione: I plugin di autenticazione possono fornire account registrati per membri, operatori e amministratori. A seconda dei plugin, gli utenti vengono registrati da un operatore o si registrano da soli. La moderazione comprende restrizioni per nickname, CID e IP, ban temporanei o permanenti, motivazioni, limiti chat, controlli flood, dati su utenti recenti, gestione degli argomenti e comandi operatore. La 0.8.0 ha spostato gli account registrati dal vecchio file di controllo accessi ai plugin di autenticazione, perciò le installazioni esistenti devono migrare questi record durante l’upgrade.
- Chat E Funzioni Comunitarie: uhub può mantenere una quantità configurabile di cronologia della chat principale, mostrare messaggi di benvenuto, pubblicare regole, esporre comandi nei client compatibili e limitare chat o messaggi privati per livello account. La 0.8.0 ha aggiunto l’estensione rich-text RTF0. I client che la supportano mostrano chat, messaggi e immagini remote formattati; quelli vecchi ricevono testo semplice. Chi non vuole immagini da URL esterni può disabilitare la funzione.
- Usare Più Di Un Core CPU: uhub funziona per impostazione predefinita in modalità a processo singolo. Un’installazione grande può impostare
workersoltre uno affinché più processi worker condividano la porta e appaiano come un solo hub.workers=0seleziona un worker per ogni core CPU disponibile. È utile quando cifratura o molte connessioni rendono limitante un processo; gli utenti non necessitano indirizzi distinti per i singoli worker. - Collegare Hub Tra Macchine: La federazione collega installazioni uhub separate e le fa apparire come una comunità maggiore. Utenti su nodi diversi possono condividere un elenco visibile, chattare, scambiare messaggi privati, cercare, ricevere risultati e stabilire trasferimenti diretti oltre i confini dei nodi. Possono propagarsi anche argomenti e ban attivi. La federazione è ancora sperimentale e destinata a sistemi fidati: l’operatore deve comprenderne limiti, testare riconnessione e rete divisa e proteggere le credenziali condivise dei server collegati.
- Plugin: uhub mantiene molte funzioni opzionali fuori dal core e le carica tramite plugin. Quelli inclusi forniscono autenticazione SQLite o su file, logging, cronologia chat, messaggi di benvenuto, comandi tema, autoregistrazione, risposte flood, menu comandi e chat limitata. I plugin C nativi hanno ampio accesso al hub in esecuzione e devono corrispondere all’API della release installata. La 0.8.0 ha aggiunto plugin JavaScript con QuickJS; tali estensioni operano in un ambiente ristretto senza normale accesso a filesystem o rete e sono adatte a comandi e funzioni basate su eventi senza compilare C.
- Monitoraggio: La 0.7.0 ha aggiunto un endpoint di metriche compatibile Prometheus. Può riportare utenti connessi, connessioni, traffico hub trasferito, conteggi messaggi e tempi dell’event loop. È disabilitato per default e richiede un bearer token. Accedervi con HTTPS, loopback o rete di gestione fidata, perché HTTP in chiaro può esporre il token.
- Ripristino Delle Connessioni: Le release correnti controllano periodicamente connessioni inattive per rimuovere presto utenti la cui sessione di rete è scomparsa senza disconnessione pulita. Ciò riduce i rifiuti al client che si riconnette mentre il hub ritiene ancora attiva la sessione precedente e migliora il recupero da Wi‑Fi, NAT, firewall o client interrotti senza cambiare il trattamento degli utenti attivi normali.
- Installazione E Piattaforme: Il repository ufficiale fornisce sorgente e pacchetti di release. La documentazione copre Linux, macOS, BSD e Windows, con pacchetti per sistemi x86-64 e ARM64 comuni. Gli utenti Debian e Ubuntu possono usare anche il repository di pacchetti mantenuto dalla comunità e collegato dal progetto. Per compilare occorrono compilatore C corrente, CMake, file di sviluppo SQLite e una versione supportata di OpenSSL o LibreSSL.
- Configurazione E Backup: Le impostazioni principali sono in
uhub.conf; dati account, regole di accesso, plugin, certificati e file correlati possono essere separati. Un backup completo deve includerli tutti, oltre a release installata, definizione del servizio e versioni plugin. Prima dell’upgrade provare la nuova versione su un’altra porta o sistema e confermare login, account, moderazione, chat, ricerche, plugin, TLS, monitoraggio, riavvio e compatibilità client.
Risorse Ufficiali uhub
Sito ufficiale uhub, documentazione, archivio notizie, repository, release e issue tracker sono le fonti più affidabili. Usare documentazione corrispondente alla versione installata perché configurazione, autenticazione, plugin, moderazione e comportamento di scalabilità sono cambiati molto nelle linee 0.6, 0.7 e 0.8.
Il repository GitHub contiene sorgente, configurazione di esempio, esempi di plugin, istruzioni di build, test e cronologia completa. Il sito della documentazione è più adatto a chi installa o gestisce un hub senza leggere il codice. Segnalare difetti riproducibili e richieste di funzioni nell’issue tracker con release esatta, sistema operativo, dettagli di configurazione, plugin, log e passaggi di riproduzione.
| Etichetta | Collegamento | Descrizione |
|---|---|---|
| Sito Del Progetto uhub | https://www.uhub.org/ | Panoramica ufficiale di scopo, destinatari, funzioni supportate, download e link correnti di uhub. |
| Documentazione uhub | https://www.uhub.org/doc/ | Indice per installazione, configurazione, TLS, plugin, monitoraggio, collegamento hub, architettura e sviluppo. |
| Guida Introduttiva | https://www.uhub.org/doc/getstarted.html | Passi per compilare o installare uhub, creare configurazione, avviare servizio, connettere client, registrare utenti e attivare più worker. |
| Riferimento Configurazione | https://www.uhub.org/doc/config.html | Riferimento ricercabile per listener, identità hub, limiti utenti, controlli flood, TLS, monitoraggio, file, worker e federazione. |
| Collegamento Hub E Federazione | https://www.uhub.org/doc/linking.html | Spiega più core CPU e il collegamento di istanze uhub separate tra macchine, con limiti e sicurezza. |
| Documentazione Plugin | https://www.uhub.org/doc/plugins/index.html | Indice dei plugin inclusi per autenticazione, logging, cronologia chat, benvenuto, moderazione, registrazione e comportamento opzionale. |
| Documentazione TLS | https://www.uhub.org/doc/config-ssl.html | Istruzioni per certificati e connessioni ADCS cifrate con OpenSSL o LibreSSL. |
| Documentazione Monitoraggio | https://www.uhub.org/doc/metrics.html | Endpoint Prometheus opzionale, statistiche, token di autenticazione e accesso sicuro consigliato. |
| Notizie Del Progetto E Cronologia Release | https://www.uhub.org/news.html | Annunci datati sui cambiamenti principali introdotti in uhub 0.5, 0.6, 0.7 e 0.8. |
| Repository Sorgente uhub | https://github.com/janvidar/uhub | Sorgente ufficiale, build, configurazione di esempio, plugin, test, documentazione tecnica, licenza e contributi. |
| Release uhub | https://github.com/janvidar/uhub/releases | Pacchetti versionati e note su nuove funzioni, requisiti upgrade, correzioni di sicurezza e compatibilità. |
| Issue Tracker uhub | https://github.com/janvidar/uhub/issues | Luogo ufficiale per difetti riproducibili, richieste di funzioni e problemi noti. |
| uhub Dev Central | adcs://adc.uhub.org:1511 | Configurazione uhub, plugin, comportamento ADC, interoperabilità e build di sviluppo correnti. |
Commenti
Ancora Nessun Commento. Avvia La Conversazione.