Gextto (EXpert Torrent Transfer Orchestrator) is a self-hosted daemon that finds, selects, downloads, verifies, names and archives TV series, movies and comics. Its web interface is the control plane; the daemon keeps running as a service.
Italiano: README.it.md · Manual: English · Issues: bugs and feature requests · Contribute: developer guide
- One service, one control plane: the daemon handles scheduled searches, torrent transfers, post-processing and the library archive. Embedded libtorrent is the default; qBittorrent-nox is an optional alternative.
- Series, movies and comics: monitor titles, search configured sources and manage downloads and archived media from one responsive web UI or the terminal TUI.
- Quality-aware automation: score releases by quality, source, codec, audio,
HDR, language and size; protect better existing files and explain rejected
candidates.
ffprobecan enrich archived-file decisions. - Flexible sources and integrations: use RSS, Torznab indexers such as Jackett and Prowlarr, web search and optional FlareSolverr; connect Simkl, Jellyfin and Plex.
- Careful with your library: an existing file is replaced only by a real upgrade, and the replaced file goes to the Trash (when configured). An unmounted NAS is recognised and never mistaken for deleted files; temporary errors (NAS unreachable, disk briefly full, timeouts) are retried automatically; a move to the archive interrupted by a restart resumes on its own.
- Operational tools included: health checks, logs, backups, maintenance, notifications, NAS paths, seeding controls and a blocklist.
The UI is available at http://<host>:5000/ and supports Italian, English,
German, French, Spanish and Polish. The full English manual
and manuale italiano cover setup and every section of the UI.
Gextto is designed to remain lightweight while idle: it is one daemon with embedded libtorrent, uses bounded concurrency for source and background work, and backs off failing providers instead of retrying continuously. Actual CPU and memory use depend on monitored titles, sources, active torrents and archive scans; treat any machine-specific measurement as indicative, not a guarantee.
The official installer targets 64-bit Linux systems with systemd. Run it as root:
curl -fsSL https://raw.githubusercontent.com/buzzqw/gextto/main/install.sh | sudo bashIt installs the program in /opt/gextto, stores service data in
/var/lib/gextto, and exposes the UI on port 5000.
Important
The web UI is an unauthenticated administrative interface. Keep it on a trusted network, or put an authenticated HTTPS reverse proxy and firewall rules in front of it. Read the security policy before exposing it remotely.
Source builds require Go 1.26+, a C++17 compiler and libtorrent-rasterbar development headers. The normal build embeds the web UI; no separate frontend build is required. See the developer manual.
make buildmake build increments the local build number and writes the versioned daemon
to bin/gexttod. To rebuild without incrementing the number, use make fast.
Verify the exact binary, product version, build number and linked libtorrent
version with:
./bin/gexttod --version- Open
http://<server>:5000and complete setup. - Configure storage paths, one source, and TMDB/TVDB credentials if needed.
- Keep dry-run enabled; add one test title and run a manual search or cycle.
- Check Health and Logs, including filesystem permissions and source results.
- Enable active mode only after the outcome is correct.
The detailed setup checklist, NAS guidance and troubleshooting are in the user manual.
For an official installation, run the installer again. It verifies the release checksum when published, replaces the binary atomically, restarts the service and, if the new version fails to start, rolls back to the previous one. Data and configuration are left untouched.
curl -fsSL https://raw.githubusercontent.com/buzzqw/gextto/main/install.sh | sudo bashThe installer also accepts these options:
sudo bash install.sh --help # all options
sudo bash install.sh --dry-run # print what would happen, change nothing
sudo bash install.sh --uninstall # stop and remove the program (keeps data)
sudo bash install.sh --uninstall --purge # also remove the data directoryEnvironment overrides (GEXTTO_DATA_DIR, GEXTTO_PORT, GEXTTO_USER, …) stay
supported. GEXTTO_LOCAL_ARCHIVE=/path/gextto-linux-x86_64.tar.gz installs from
a local payload (offline or CI).
For a source checkout:
git pull --ff-only
./scripts/update.sh
curl -fsS http://127.0.0.1:5000/api/healthThe source update script runs the versioned build, restarts the detected
service and leaves the data directory and configuration untouched. Use
./scripts/update.sh --no-restart when the restart must be performed manually.
The web UI includes keyboard navigation, accessible names for controls, focus management in dialogs, semantic sortable tables, live announcements for dynamic updates, responsive reflow and improved light-theme contrast. Accessibility regressions are checked with axe-core and Playwright:
cd uiweb/end2end
npm ci
npm run test:a11yThe current automated suite covers the main UI sections with 12 accessibility tests. This is not, by itself, a legal accessibility certification: manual screen-reader, keyboard and assistive-technology testing is still required. See the accessibility analysis for scope and known limitations.
| Need | Document |
|---|---|
| Operate the service | English manual · Manuale italiano |
| NAS, reverse proxy, recovery | Advanced guide |
| HTTP integrations | API reference |
| Move an existing installation | Migration guide |
| Terminal client | TUI reference |
| Build or contribute | Developer manual |
| Network and data safety | Security policy |
| Accessibility scope and testing | Accessibility analysis |
For the full documentation tree, start from the documentation index.
If Gextto is useful to you and you would like to support its development, you can make a contribution via PayPal. Thank you!
Gextto is a download automation tool. It does not host, index, or distribute any copyrighted content.
- Gextto connects to indexers you configure (Jackett, Prowlarr, public RSS feeds). It has no built-in index.
- What you download is entirely your responsibility. Use Gextto only for content you have the right to access — public domain, Creative Commons, or media you own.
- The torrent integration (libtorrent) is a neutral technology. Gextto does not encourage or facilitate piracy.
- This project is released under the EUPL 1.2 open-source license.
"With great automation comes great responsibility."
Gextto is licensed under the EUPL-1.2. See NOTICE for notices about bundled and optional third-party components.