Skip to content

gx-core — manuale d’uso

gx-core è il client BitTorrent completo che vive dentro gx-torrent: la stessa applicazione che Gextto usa come motore, ma senza Gextto. Si apre dal browser, si configura in pochi minuti e fa già tutto quello che serve: torrent, coda, categorie, tag, RSS, Serie e film, archivio, ricerca, statistiche, streaming, DLNA e API compatibile con qBittorrent.

[!TIP] Questo manuale è illustrato con un ambiente Docker reale: quattro torrent legali (Big Buck Bunny, Sintel, Tears of Steel, Cosmos Laundromat), categorie, tag, un titolo seguito e trasferimenti in corso. Le immagini sono state prese dall’interfaccia vera, non da mockup.

1. Avvio in tre minuti

gx-torrent esce come archivio autonomo (gx-torrent-linux-<arch>.tar.gz nella pagina delle release): dentro ci sono il binario, run.sh per avviarlo e install-service.sh per installarlo come servizio systemd.

tar xzf gx-torrent-linux-x86_64.tar.gz
cd gx-torrent
./run.sh                              # avvio diretto, dati in una cartella accanto
./run.sh 2                            # oppure: servizio systemd, dati in /var/lib/gx-torrent
# oppure: sudo ./install-service.sh   # lo stesso, senza passare da run.sh

./run.sh --help elenca le due scelte; senza argomento, in un terminale, lo script le chiede.

Apri http://IP-DEL-SERVER:8890/: al primo accesso compare la procedura guidata.

Con Docker

L’immagine non è pubblicata: il contenitore si costruisce dai sorgenti, quindi scarica prima il repository (o l’archivio dei sorgenti di una release) e lancia i comandi dalla cartella che contiene il Dockerfile. Il solo Dockerfile non basta, perché durante la build il demone viene compilato dal codice del repository.

git clone https://github.com/buzzqw/gextto.git
cd gextto
docker build -t gx-torrent .
docker run -d --name gx-torrent \
  -p 8080:8080 -p 6881:6881 -p 6881:6881/udp \
  -v gx-torrent-data:/data \
  gx-torrent

Con il contenitore la pagina risponde su http://IP-DEL-SERVER:8080/.

Procedura guidata

Scegli lingua, cartella dei download, porta peer e, se vuoi, la password. La stessa procedura può aggiungere un indexer Torznab (Prowlarr, Jackett, indexarr o un altro endpoint). Tutto il resto ha già valori sensati.

2. La pagina Torrent

La schermata principale è una lista densa ma leggibile: stato, dimensione, progresso, seed/peer, velocità, ETA, rapporto, categoria e tag. La barra in alto mostra il traffico; in basso ci sono i comandi globali.

Torrent

  • Aggiungi apre magnet, URL .torrent e file, con destinazione, categoria, tag, pausa, sequenziale, primo/ultimo pezzo, limiti e content layout.
  • Pausa tutto / Riprendi tutto fermano o riavviano l’intera sessione.
  • Le colonne si scelgono e si ridimensionano; la scelta resta.
  • Il filtro laterale divide per stato, categoria, tag e tracker. In fondo alla barra laterale c’è la lingua dell’interfaccia (English, Italiano, Deutsch, Français, Español, Polski): si cambia da lì, la pagina si ricarica già tradotta e la scelta resta salvata come quella nelle impostazioni.
  • Il menu contestuale ha coda, limiti, sposta, rinomina, verifica, reannounce, super-seeding e rimozione.

Dettaglio di un torrent

Clicca un nome per aprire il pannello in basso. La scheda Generale riunisce stato, pezzi, spazio, date, limiti, seed e web seed.

Dettaglio

File mostra l’avanzamento per file, la priorità (Skip, Normal, High, Maximum), il raggruppamento per cartella, la rinomina e lo streaming HTTP.

File

Peer mostra client, trasporto, cifratura e flags; da qui si aggiungono peer e si banna un indirizzo. Tracker mostra stato, swarm e prossimo annuncio; Pezzi è la mappa colorata del torrent.

Peer

3. Aggiungere e creare

La finestra di aggiunta accetta più magnet o URL insieme; il trascinamento di un .torrent sulla pagina la apre già compilata. Quando scegli un .torrent con il pulsante, la finestra elenca i file che contiene con una casella ciascuno: togli la spunta a quello che non vuoi e vengono scaricati solo i file selezionati. Un magnet non ha l'elenco dei file finché non arrivano i metadati; aggiungilo con in pausa e ferma ai metadati, poi scegli i file dalla scheda File.

Aggiungi

Da Strumenti → Crea .torrent si crea un torrent da un file o una cartella del server, con dimensione dei pezzi, formato (v1, letto da ogni client; v2, BEP 52; ibrido, che serve i due swarm), flag privato, commento, una stringa source, tracker e web seed. Avvia il seeding dopo la creazione aggiunge il nuovo torrent alla sessione e semina subito la cartella o il file, invece di scaricare il .torrent.

Crea torrent

4. Serie e film: cosa manca davvero

Serie e film è la pagina che trasforma il client in un acquisitore. Ogni titolo dice in parole cosa hai: Scaricato, In download, Trovato, non scaricato. La barra di avanzamento è calcolata sugli episodi trovati finora; se attivi l’elenco episodi reale, il denominatore diventa la serie vera.

Serie e film

  • Filtri per stato: tutti, con mancanti, in download, completi, non monitorati.
  • Una sola azione principale per riga; tutto il resto è nel menu Altro.
  • Perché no? apre le release trovate e il verdetto di ciascuna.
  • Episodi apre la griglia per stagione, con lo stato di ogni episodio.
  • Cerca, nella finestra Aggiungi titolo, elenca sotto ogni nome le puntate già in archivio con risoluzione e lingua: sceglierne una compila titolo e lingua da quella release.
  • La qualità di un titolo si sceglie solo dal profilo: la finestra ha un unico campo Profilo di qualità e sotto un collegamento Crea o modifica i profili che apre la scheda Libreria delle impostazioni. Senza profilo il titolo accetta qualsiasi risoluzione.

Episodi

Profili di qualità e aggiornamenti

In Impostazioni → Libreria → Profili di qualità si crea un profilo con le risoluzioni accettate (360p…2160p) e una soglia; è l'unico modo per fissare la qualità di un titolo. Con la soglia, un episodio già scaricato a 720p viene sostituito da una release 1080p quando arriva: il nuovo torrent entra, il vecchio esce dalla sessione e i file restano.

Profili di qualità

Elenco episodi reale (opzionale)

In Impostazioni → Serie e film si può attivare TVmaze: il titolo della serie viene inviato a api.tvmaze.com e gx-core conosce gli episodi già andati in onda, anche se nessuna release è mai passata dai feed. È spento per default; senza corrispondenza la pagina continua con quello che hanno visto feed e indexer e lo dice sulla riga.

5. RSS, archivio e ricerca

RSS e indexer gestisce feed, regole ordinate PASS/FAIL, indexer Torznab e l’archivio locale. Un indexer si può provare con Prova già nella finestra in cui lo si aggiunge o modifica, prima di salvarlo. Le regole hanno anteprima live, test dei feed, import/export e azioni (cartella, categoria, tag, pausa, sequenziale, primo/ultimo, top). Archivio rende ricercabile tutto ciò che i feed hanno restituito, anche quando non è stato scaricato. Cerca interroga gli indexer in parallelo e mostra dimensione, seed, peer, età e indexer; ogni risultato si aggiunge subito o con le opzioni (destinazione, categoria, tag).

6. Statistiche e impostazioni

Statistiche mostra il grafico 1 h / 24 h / 7 g, i totali di sessione e di sempre, disco e cache, rete, coda e torrent più attivi.

Statistiche

Impostazioni è divisa in sette schede — Cartelle e file, Rete, Banda, Coda, Libreria, Interfaccia e Sistema — così ogni gruppo di opzioni si apre da solo invece di scorrere un unico elenco lungo: cartelle e azioni a fine download, rete e protocolli, limiti di velocità e scheduler per giorno, coda e cache, categorie e profili di qualità con DLNA, lingua e notifiche, manutenzione e aggiornamento. La ricerca in alto cerca in tutte le schede insieme; il pulsante Salva resta in fondo e salva comunque tutta la pagina, anche i gruppi delle schede chiuse. Dopo un salvataggio o un'azione dentro una scheda (aggiungere una categoria, salvare un profilo, provare la porta, inviare una notifica di prova) la pagina resta su quella scheda e conferma con un messaggio in basso a destra, così si vede che il pulsante ha fatto qualcosa.

Impostazioni

Alcune opzioni sono l'equivalente nativo di quelle di qBittorrent: Ricontrolla i dati al completamento del download (Coda) verifica i file una volta prima di seminarli; Modalità anonima (Rete) nasconde la versione del client ai peer e ai tracker pubblici, senza nascondere l'indirizzo IP; Annuncia a tutti i tracker di un tier (Rete, attivo di default) interroga insieme tutti i tracker di un tier con più tracker; e Interfaccia → Lingua elenca ogni language pack messo in <data>/lang accanto alle sei lingue integrate.

La gestione delle categorie e il loro percorso è nella stessa pagina: è ciò che fa funzionare davvero la gestione automatica dei torrent.

Categorie

Velocità automatica (misura la linea)

In Impostazioni → Banda → Velocità automatica (misura la linea) lasci che sia gx-torrent a trovare la velocità invece di fissarla: sonda la latenza di andata e ritorno verso Google e Cloudflare (o un host scelto) e muove download e upload insieme, abbassandoli quando la linea si mette in coda e rialzandoli quando la latenza scende. Un limite manuale resta il tetto, e i massimi reali della linea, se li conosci, gli fanno raggiungere prima il punto giusto; con i massimi a 0 li scopre da solo. Ottimizza nella stessa scheda azzera i due limiti e accende la velocità automatica. È spenta per default.

Notifiche

In Impostazioni → Interfaccia → Notifiche il client ti dice cosa succede sugli stessi canali di Gextto e indexarr: Telegram, un webhook generico (formato JSON, Discord, Slack, Gotify, ntfy o Pushover), Discord, Slack, Gotify, ntfy, Pushover, un server Apprise, l’e-mail e uno script personale. Compila quelli che usi e lascia vuoti gli altri: ogni canale compilato riceve ogni evento attivo, e un servizio lento non trattiene gli altri. Tre interruttori scelgono gli eventi — Download completato, Feed ha aggiunto torrent, Errore del feed — e Invia prova prova in una volta tutti i canali salvati. Lo script riceve l’evento nelle variabili GX_TORRENT_* (app, evento, titolo e messaggio), mai sulla riga di comando.

7. Quanto costa in CPU e RAM

Motore, coda, pagina, RSS e API compatibile con qBittorrent sono un solo processo Go: nessun motore esterno, nessuna libreria C, nessun server di database. Questi numeri sono l’intero demone, misurati su un mini-PC Intel N97 (4 core, 16 GB di RAM), con DHT attiva e un filtro IP completo caricato (172.740 regole); la riga a riposo è il campione del 6 novembre 2026, le altre sono del 26–30 ottobre 2026:

Situazione CPU Memoria (RSS)
A riposo 0,3–0,5 % di un core 28–30 MB
In download da sciami pubblici a 8,2–8,8 MB/s con 116–132 peer 18–37 % di un core, 2,0–4,3 s di CPU per 100 MB —
Trasferimento in loopback (seed e leecher sullo stesso host) 7,5–8,3 s di CPU per 1,09 GiB per entrambi i lati ≈ 100 MB di picco
Cinque minuti dopo un picco, senza trasferimenti — 550 MB → 35–40 MB

A riposo il processore fa soprattutto lavoro di rete vero — DHT e handshake dei peer in arrivo — non polling interno. Il tetto di connessioni è dimensionato sulla macchina (55 peer per torrent e 300 in totale su questo host a 4 core), e i buffer dei pezzi tornano dopo un picco invece di restare riservati. Macchina, data e comando di ogni numero sono in measurements.md.

8. Dal telefono

La pagina è responsive e installabile come app: manifest e service worker mettono in cache solo le risorse condivise, mai pagine o risposte autenticate. Quando c’è una password compare Esci.

Sul telefono ogni torrent è una scheda (nome, barra, stato e velocità) e l’archivio è una scheda per voce, con titolo, dimensione, seed e i pulsanti Add, Copy magnet ed eliminazione; la barra delle sezioni scorre di lato e porta al centro la pagina in cui sei. Nel dettaglio i nomi dei file restano leggibili e la tabella scorre di lato.

Mobile

9. Integrazioni

gx-core espone l’API compatibile con qBittorrent (/api/v2) per Sonarr, Radarr, Lidarr, Readarr, Prowlarr e le app mobili. In Impostazioni → Rete si impostano l’API key (X-Api-Key o Bearer) e la versione riportata da app/version (default 4.6.7). L’API nativa /api/v1, Prometheus e SSE restano disponibili per script e automazioni. Un feed conserva il suo identificativo quando lo rinomini, lo sposti o ne cambi l’indirizzo, le regole riportano l’ultima corrispondenza e gli episodi già presi, e i tag impostati da un client restano: le app che leggono questi dati li trovano pieni. La compatibilità è ampia ma non è un clone al 100%: i limiti sono in gx-core.md §6.

10. Sicurezza

  • La pagina ascolta su 0.0.0.0:8080 nel container; il login è opzionale ma consigliato se la esponi oltre la LAN.
  • CSRF, DNS rebinding e “cosa conta come LAN” sono gestiti lato server; i proxy fidati vanno dichiarati.
  • L’API key e il token sono segreti: non metterli in URL pubblici.
  • I web seed e le sorgenti magnet non raggiungono la rete locale se non lo consenti esplicitamente.

11. Riprodurre l’ambiente di questo manuale

L’ambiente delle immagini è un container gx-torrent con quattro torrent pubblici e legali, un paio di categorie e un titolo seguito. I passi sono quelli del capitolo 1; i torrent si aggiungono da Aggiungi o dall’API:

curl -X POST --data-urlencode \
  'urls=https://webtorrent.io/torrents/big-buck-bunny.torrent' \
  http://127.0.0.1:8080/api/v2/torrents/add

Nessun dato personale, nessun tracker privato, nessun contenuto protetto.

12. Sostenere il progetto

gx-torrent è libero e non ha pubblicità. Se ti è utile, il pulsante Dona è sempre in basso a destra nelle pagine dell’interfaccia: apre PayPal in una nuova scheda e la donazione va allo sviluppo. Sul telefono resta il cuore, senza scritta. Lo stesso collegamento è nel README.