Skip to main content

Choose your install method

Overview​

UltraTorrent ships as a Docker Compose stack: PostgreSQL, Redis, the NestJS API, the React web UI, and — behind opt-in Compose profiles — a bundled torrent engine, a Prowlarr indexer manager, a Cloudflare solver, and an edge reverse proxy.

That single fact simplifies the whole install story. Almost every "platform" in this section is just a Docker host. Synology, QNAP, Unraid, TrueNAS SCALE, Portainer, Proxmox, a Hetzner VPS — they differ in how you get a shell, where your volumes live, and which ports are already taken. They do not differ in how UltraTorrent runs.

So this section is deliberately shaped like that:

  • Get UltraTorrent comes first: where the software actually comes from, and what is deliberately not published.
  • Docker Compose is the authoritative guide. Every other page defers to it.
  • Guided installer does that same install from one binary — plan, generate, deploy, seed, verify — for people who would rather not do it by hand.
  • Platform pages are thin deltas: shell access, paths, port clashes, gotchas.
  • Reverse proxy and TLS are cross-cutting and apply to all of them.
There are no prebuilt images yet

The Compose stack builds the images from source — there is no published registry image to docker pull. Your host therefore needs Docker, the source tree, and roughly 2 GB of free RAM for the first build (about 10–15 minutes; later starts are seconds). Base images are multi-arch, so x86-64 and ARM64 hosts both work.

The same is true of the software itself: there is nothing to download but the source. See Get UltraTorrent.

Watch this tutorial

Video coming soon.

Decision tree​

Comparison table​

HostHow you installDifficultyShell needed?Notes
Linux PC / serverDocker Engine + Compose pluginEasyYesThe reference platform. Ubuntu, Debian, Fedora, Rocky.
SynologyContainer Manager + SSHMediumYes (once)Well-grounded — UltraTorrent is deployed on Synology. Remap the UI port; DSM can strip container capabilities.
QNAPContainer Station + SSHMediumYesWell-grounded. The docker binary is not on PATH by default. QNAP's admin UI already owns port 8080.
UnraidDocker Compose Manager plugin, or SSHMediumYesNo Community Apps template exists — the stack builds from source.
TrueNAS SCALEDocker / custom appMediumYesDepends heavily on your SCALE version's app engine.
PortainerStacks → Git repositoryEasyNoNice if you already run Portainer. Seeding still needs a container console.
ProxmoxVM (recommended) or LXC running DockerMediumYesProxmox itself does not run Docker — you install it inside a guest.
Cloud VPSDocker Engine + firewall + TLSMediumYesAWS, Azure, GCP, Oracle, Hetzner, DigitalOcean, Vultr. Never expose it without HTTPS and a firewall.

What gets installed​

The only port published by default is the web UI (8080, changeable via FRONTEND_PORT). The backend is not published to the host — the frontend's nginx proxies /api/ and /ws/ to it over the internal Docker network.

Which engine?​

UltraTorrent is multi-engine. Two engines ship bundled behind Compose profiles:

Bundled rTorrent (--profile rtorrent)Bundled qBittorrent (--profile qbittorrent)
SetupZero config — add it in the UI as scgi-tcp / host rtorrent / port 5000Grab the first-run password from the logs, then register it
FootprintVery smallSmall
Stability at scaleDegrades. rTorrent 0.9.8 has an unfixed upstream priority_queue_insert crash that fires more often the more active torrents you runComfortable with thousands of torrents
Best forA modest library, a first installA large library
Bundled rTorrent and large libraries

The bundled engine is rTorrent 0.9.8 (jesec v0.9.8-r16, the newest build in that lineage). It carries a long-standing upstream bug — internal_error: priority_queue_insert(...) called on an invalid item, fired during tracker-announce scheduling — with no fix in the 0.9.8 line. Frequency scales with the number of active torrents: effectively zero at a handful, roughly ten crashes a day at ~750.

Each crash exits the process; Docker's restart: unless-stopped relaunches it and rTorrent reloads its saved session, so no torrents are lost — transfers just pause briefly and re-announce. Mitigate by keeping the active-torrent count modest, or run qBittorrent instead for a large library. UDP trackers and DHT are already disabled in the bundled config to remove secondary crash variants.

Before you start​

You will need, on the host:

  • Docker Engine with the Compose v2 plugin (docker compose, space — not the legacy docker-compose).
  • ~2 GB free RAM for the build, 2+ GB disk for the images, plus whatever your downloads need.
  • The source tree (git clone, or a downloaded ZIP) — see Get UltraTorrent.
  • Five secrets you generate yourself: POSTGRES_PASSWORD, JWT_ACCESS_SECRET, JWT_REFRESH_SECRET, ENCRYPTION_KEY, ADMIN_PASSWORD. There are no insecure defaults — the stack refuses to start without them.

Docker Compose bringing the UltraTorrent stack up

By hand, or by installer?​

Both produce the same stack. The difference is who runs the steps.

Docker ComposeGuided installer
What you runcp .env.example .env, edit, bring the stack up, seedultratorrent-install install --repo <checkout>
SecretsYou generate five and paste them inGenerated for you, preserved on every re-run
Engine credentialsFetch qBittorrent's first-run password from its logPre-seeded; written to engine-credentials.txt
Prowlarr + FlareSolverrYou paste the API key into Settings and add the proxyWired automatically
Database seedA second command you must rememberPart of the run
"Did it work?"You open the UI and find outSign-in verified through the published UI before it claims success
Getting itAlready in your checkoutBuilt from clients/installer — nothing to download
Interactiven/aNot yet — answers are flags, not questions

Read the Compose guide either way: the installer automates it, it does not replace understanding it.

Next steps​

  1. Get the source onto the host.
  2. Follow the Docker Compose guide — the authoritative install — or hand it to the guided installer.
  3. Skim your platform page for the deltas that apply to your host.
  4. Exposing it beyond your LAN? Reverse proxy → TLS.
  5. Then Quick start and your first download.

Checklist​

  • I know which host I am installing on
  • I have the source on it (Get UltraTorrent)
  • Docker Engine + Compose v2 are installed on it
  • I have ~2 GB free RAM and a couple of GB of disk
  • I have decided rTorrent (small library) vs qBittorrent (large library)
  • I know whether this box will be reachable from the internet (→ reverse proxy + TLS)
  • I have somewhere safe to keep the five secrets I am about to generate

FAQ​

Is there a one-click app / Docker Hub image? Not yet. Every install builds from source with docker compose up -d --build. The closest thing is the guided installer, which is one command — but you build that from source too.

Is there an install script I can download and run? There is an installer, ultratorrent-install, but it is not published as a downloadable file: you build it from the checkout. See Guided installer.

Can I run it without Docker? Yes — Node 20, PostgreSQL 14+ and Redis 6+, from source. It is a development path, not a supported production one. See Linux.

Does it need a GPU / transcoding? No. UltraTorrent acquires and organizes media; it does not transcode or stream.

Can I use my existing qBittorrent / rTorrent? Yes — skip both profiles and register your own engine under Infrastructure → Engines. See Engines.

See also​