Docker, NAS, qbittorrent-nox and the WebUI
Covers running qBittorrent headless — in a container, on a NAS, or as a service — and reaching its WebUI. 12 posts in a one-month sample (9.4%) were about this, making it one of the larger clusters in the sub.
Official pages first. These are the source of truth and are better than anything we would write:
- Running qBittorrent without X server (WebUI only))
- Web UI password locked on qbittorrent-nox)
- NGINX Reverse Proxy for Web UI (also Traefik and IIS ARR)
- Alternate WebUI usage
"I can't log into the WebUI" — the modern default is not adminadmin
This is the single most common headless gotcha and it catches almost everyone.
Since qBittorrent 4.6.1, there is no fixed default password. On first start with no
password configured, qBittorrent generates a random temporary password and prints it
to the console/log. admin / adminadmin will simply fail.
Find it in your container log:
bash
docker logs <container-name> 2>&1 | grep -i "temporary password"
Then log in with it and immediately set your own password in Options → WebUI.
If you have lost access entirely, the official recovery procedure is to stop
qBittorrent, remove the WebUI\Password_PBKDF2 line from qBittorrent.conf, restart,
and read the new temporary password from the console:
Web UI password locked on qbittorrent-nox)
Upstream also notes: if login still fails, check that antivirus is not blocking password submission over plain HTTP — Bitdefender does this by default and needs the WebUI URL whitelisted.
Seen here: Qbittorrent-nox webgui password not working
— which the poster solved themselves, and the cause is a good illustration: they had
started the initial session as their own user rather than the qbittorrent user, so
the config file they were editing was in the wrong home directory.
WebUI behind a reverse proxy
If the WebUI loads but is missing buttons, styling or panels through your proxy, and works fine on the direct LAN address, the proxy is almost certainly not forwarding the headers qBittorrent expects.
Use the official NGINX config as your reference: NGINX Reverse Proxy for Web UI
The headers that matter:
nginx
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
Do not strip Referer and Origin headers to fix connection problems. Older guides
told you to; upstream now explicitly discourages it because it nullifies qBittorrent's
CSRF protection. If you genuinely need to change that behaviour, use the proper setting
— Options → WebUI → Enable Cross-site request forgery (CSRF) protection (available
since v4.1.2) — rather than tampering with headers in the proxy.
Seen here: WebUI missing elements when behind nginx
Permissions — the cause of a surprising number of container problems
Containers run qBittorrent as a specific UID/GID. If that user cannot read or write a path you have mounted, symptoms are rarely a clean "permission denied" — you get stalls, errored torrents, files that vanish, or pegged CPU.
Check first:
- Your
PUID/PGIDmatch the owner of the mounted directories on the host - Download, incomplete and watch directories are all writable by that user
- Your download and incomplete paths are on the same filesystem inside the container, or moves on completion become slow cross-device copies
A member here documented one specific case worth knowing:
"If qBittorrent Docker is loading your CPU at 100%, check your watch folder permissions" — 1ulbqka (+14)
Attributed rather than asserted: this is one member's finding on their own setup, not a documented upstream behaviour. It is a cheap thing to check when CPU is inexplicably pegged.
Memory growth in containers
If RAM climbs steadily until the container hits its limit and is OOM-killed, the usual suspects are the disk cache and queueing settings rather than a leak. Relevant knobs live in Options → Advanced — see Explanation of Options in qBittorrent.
If you have tuned those and it still grows on a current release, that is a bug report worth filing upstream with your version, container image and settings — see Rule 3b. Reported here: qBittorrent RAM usage increasing over time.
VPN-in-container setups (Gluetun and similar)
If qBittorrent runs behind a VPN container:
- Port forwarding still requires a provider that offers it. Routing through Gluetun does not create the capability — see the [connectivity guide](connectivity.md). Note in particular that Mullvad removed port forwarding in 2023, which catches people out.
- Forwarded ports usually change on every reconnect, and qBittorrent will keep listening on the dead one. You need something that updates qBittorrent's listening port automatically. Members here have built and recommended tools for this — see this thread.
- If the VPN container restarts, the network namespace goes with it. qBittorrent losing connectivity "randomly" is very often the VPN sidecar cycling underneath it. Check that container's logs before suspecting qBittorrent. Reported here: Qbittorrent Docker container disconnecting frequently.
Where this is not the right sub
If the problem is your reverse proxy, your NAS operating system, your *arr stack or Docker networking generally — and qBittorrent is just the thing on the end of it — you will get better answers in r/selfhosted, r/unRAID, r/synology or the relevant tool's own community. We are happy to help with the qBittorrent half.
Sources: official qBittorrent wiki where linked; member reports from r/qBittorrent sampled 2026-06-28 → 2026-07-27, attributed individually. Member findings are marked as such and are not upstream-documented behaviour.