Docker
Docker Compose
docker-compose.yml
services:
qui:
image: ghcr.io/autobrr/qui:latest
container_name: qui
restart: unless-stopped
ports:
- "7476:7476"
volumes:
- ./qui:/config
#environment:
docker compose up -d
Standalone
docker run -d \
-p 7476:7476 \
-v $(pwd)/config:/config \
ghcr.io/autobrr/qui:latest
Local Filesystem Access
Docker: Local Filesystem Access
Several qui features require access to the same filesystem paths that qBittorrent uses (orphan scan, hardlinks, reflinks, automations).
Mount the same paths qBittorrent uses - paths must match exactly:
volumes:
- /config:/config
- /data/torrents:/data/torrents # Must match qBittorrent's path
After mounting, enable Local Filesystem Access on each instance in qui's Instance Settings.
Unraid
Our release workflow builds multi-architecture images (linux/amd64, linux/arm64, and friends) and publishes them to ghcr.io/autobrr/qui, so the container should work on Unraid out of the box.
Deploy from the Docker tab
- Open Docker → Add Container
- Set Name to
qui - Set Repository to
ghcr.io/autobrr/qui:latest - Keep the default Network Type (
bridgeworks for most setups) - Add a port mapping: Host port
7476→ Container port7476 - Add a path mapping: Container Path
/config→ Host Path/mnt/user/appdata/qui - Enable Advanced View (top right)
- Set Icon URL to
https://raw.githubusercontent.com/autobrr/qui/main/web/public/icon.png - Set WebUI to
http://[IP]:[PORT:7476] - (Optional) add environment variables for advanced settings (e.g.,
QUI__BASE_URL,QUI__LOG_LEVEL,TZ) - Click Apply to pull the image and start the container
The /config mount stores config.toml, the SQLite database, and logs. Point it at your preferred appdata share so settings persist across upgrades.
If the app logs to stdout, check logs via Docker → qui → Logs; if it writes to files, they'll be under /config.
Updating
- Use Unraid's Check for Updates action to pull a newer
latestimage - If you pinned a specific version tag, edit the repository field to the new tag when you're ready to upgrade
- Restart the container if needed after the image update so the new binary is loaded
Updating
docker compose pull && docker compose up -d