Skip to content

Configuration

All configuration is done through environment variables.

Required

VariableDescription
ENCRYPTION_KEYAES-256 key for encrypting stored credentials. Minimum 32 characters.

Generate a key:

bash
openssl rand -hex 32

Server

VariableDefaultDescription
PORT3000HTTP server port
DATABASE_PATH./data/qbitwebui.dbSQLite database location
SALT_PATH./data/.saltEncryption salt file location

Authentication

VariableDefaultDescription
DISABLE_AUTHfalseSkip authentication entirely
DISABLE_REGISTRATIONfalsePrevent new user signups

Disable Auth

Use when running behind an authenticating reverse proxy (Authelia, Authentik, etc.):

yaml
environment:
  - DISABLE_AUTH=true

DANGER

Only use behind a properly secured reverse proxy. Anyone who can reach qbitwebui will have full access.

Disable Registration

Lock down to existing users only. On first start with no users, generates a random admin password printed to logs:

yaml
environment:
  - DISABLE_REGISTRATION=true

Features

VariableDefaultDescription
DOWNLOADS_PATH-Enable file browser at this path
ALLOW_SELF_SIGNED_CERTSfalseAccept self-signed TLS certificates

File Browser

Mount your downloads directory and set the path:

yaml
environment:
  - DOWNLOADS_PATH=/downloads
volumes:
  - /path/to/downloads:/downloads:ro

The :ro makes it read-only. Remove for write access (delete, move, rename).

Self-Signed Certificates

If your qBittorrent uses HTTPS with a self-signed certificate:

yaml
environment:
  - ALLOW_SELF_SIGNED_CERTS=true

Database

SQLite database stores:

DataSecurity
UsersPasswords hashed with bcrypt (cost 12)
SessionsRandom tokens, 7-day expiry
InstancesCredentials encrypted with AES-256-GCM
IntegrationsAPI keys encrypted with AES-256-GCM

Backup

bash
cp ./data/qbitwebui.db ./backup/

Restore

bash
cp ./backup/qbitwebui.db ./data/

Use the same ENCRYPTION_KEY after restore.

Released under the MIT License.