torrentng
ghcr.io/snapetech/torrentng/native:latest
https://github.com/snapetech/TorrentNG/pkgs/container/torrentng%2Fnative
bridge
false
sh
https://raw.githubusercontent.com/snapetech/TorrentNG/main/icon.png
http://[IP]:[PORT:8080]
TorrentNG is a modern torrent management stack for headless power-user seeding at 10k-100k+ torrents and 200-500+ TB. This template runs torrentngd, TorrentNG's own first-party Rust BitTorrent client daemon, with its built-in WebUI, REST/SSE API, and qBittorrent-compatible API (for Prowlarr/Sonarr/Radarr/autobrr/cross-seed) all in one container. torrentngd owns torrent state, peer traffic, tracker state, storage, rechecks, jobs, and metrics directly -- it does not run or depend on rTorrent.
Use this template if you want a single self-contained TorrentNG install with no external torrent client. If you already run rTorrent, qBittorrent, Transmission, or Deluge and just want TorrentNG's WebUI/API in front of it instead, use the "TorrentNG WebUI" template.
FIRST RUN: torrentngd reads its settings from a config.toml file, not environment variables (this is intentional -- see the project's deployment docs). Before starting the container for the first time:
1. Create the appdata folder for Config below (e.g. /mnt/user/appdata/torrentng/config).
2. Either leave it empty to run with the packaged defaults (0.0.0.0:8080 WebUI, port 44444 for peer traffic, DHT on), or copy in a customized config.toml -- see deploy/native/config.toml in the TorrentNG repository for every field.
3. Set the "API Token" variable below to a random string; the container writes it to the path the packaged config already expects for authenticating the WebUI/API. Generate one with e.g. `openssl rand -hex 32` on any Linux box, or the Unraid terminal. This template publishes on a public container bind, so first login uses the API Token in either the Username or Password field. To retrieve the active login in Unraid, open the Docker tab, click the `torrentng` container icon, choose Console, and run `torrentngd auth-token` at the prompt. Use the printed WebUI username and password on TorrentNG's login page. Then open Settings -> Security to choose a username and password of at least 16 characters. The API token remains available for automation and can still be used in either login field. See the Unraid deployment README for details.
The image supports runtime PUID/PGID handling. This template defaults to Unraid's standard nobody:users identity, 99:100; the entrypoint prepares its small internal runtime directories and then drops to that non-root identity. Do not add an ExtraParams `--user` override: the entrypoint needs its short setup phase. Make sure the Data, Config, and State/DB appdata folders are owned by the selected PUID:PGID before first start. For the default paths shown below, use Unraid's Tools -> New Permissions on both `/mnt/user/downloads/torrentng` and `/mnt/user/appdata/torrentng`, or run from the Unraid terminal: `chown -R 99:100 /mnt/user/downloads/torrentng /mnt/user/appdata/torrentng`. The container never recursively chowns mounted download trees at startup.
RUNNING BEHIND A VPN: Runtime listen-port changes are supported through the authenticated native API and are persisted across restarts. For Gluetun, ProtonVPN NAT-PMP, and providers that assign a new forwarded port on reconnect, see the "Native torrentng behind Gluetun" section in the linked Unraid README or the deploy/native/compose.vpn.yml example. The native template can share an existing Gluetun namespace with Extra Parameters `--network=container:gluetun`; publish WebUI/API port 8080 on Gluetun, remove the fixed TorrentNG port mappings, and run the included `vpn-port-sync.sh` helper in that same network namespace using separate Gluetun and TorrentNG API keys.
Downloaders:
Network:Web
https://github.com/snapetech/TorrentNG/issues
https://github.com/snapetech/TorrentNG
https://raw.githubusercontent.com/snapetech/TorrentNG/main/templates/torrentng.xml
https://raw.githubusercontent.com/snapetech/TorrentNG/main/deploy/unraid/README.md
bittorrent torrent client seedbox rtorrent qbittorrent transmission deluge torrentngd
Create the config appdata folder (optionally with a config.toml inside) and set an API token before first start. The install generates a unique WebUI password. To retrieve the active login, open Unraid's Docker tab, click this container's icon, choose Console, and run `torrentngd auth-token`. On this template's public bind, use the API token in either login field for first sign-in, then set a username and password of at least 16 characters in Settings -> Security.
Document the Unraid container Console steps for retrieving the TorrentNG WebUI login; runtime listen-port updates with Gluetun VPN port-forward synchronization.
2026-10-12
6.9
GPL-3.0-or-later