Docker assets for Retreivr.
Quick start
- Build:
docker build -f docker/Dockerfile -t retreivr:latest . - Compose: use
docker/docker-compose.yml.exampleas your base. - Default runtime is Retreivr-only. Optional ARR/Jellyfin/VPN services are enabled later through compose profiles.
- Release asset: each tagged release also publishes
retreivr-docker-starter-<tag>.zipwith compose, env, config example, and runtime README.
Compose profiles (single canonical file)
- Canonical file:
docker/docker-compose.yml.example - Default:
docker compose up -dstartsretreivronly. - Enable optional services by profile:
--profile arr->radarr,sonarr,readarr,prowlarr--profile subtitles->bazarr--profile downloader->qbittorrent(usesgluetunnetwork)--profile vpn->gluetun--profile jellyfin->jellyfin--profile hostctl->retreivr-hostctl(required for direct-manage mode)
Common examples
- Retreivr only:
docker compose up -d - ARR core:
docker compose --profile arr up -d - ARR + downloader + VPN:
docker compose --profile arr --profile downloader --profile vpn up -d - ARR + Jellyfin:
docker compose --profile arr --profile jellyfin up -d - Direct-manage helper enabled:
docker compose --profile hostctl up -d
Ports
- Internal container port: 8000
- Suggested host mapping:
8090:8000(host:container) - Access URL with default mapping:
http://localhost:8090 - Optional profile host ports:
8080-> gluetun/qBittorrent WebUI7878-> Radarr8989-> Sonarr8787-> Readarr9696-> Prowlarr6767-> Bazarr8096-> Jellyfin
Port conflict remediation
- If
docker compose upfails on a port bind error:- stop the process currently using the host port, or
- remap the host side in compose (example
7879:7878for Radarr), then re-run.
- Retreivr Setup now runs preflight checks and will report blocking conflicts with hints before apply.
Volumes + paths
/config→ config JSON/downloads→ completed media/data→ SQLite + temp dirs/logs→ logs/tokens→ OAuth tokens + client secrets
Legacy /app/* mounts are still supported via explicit RETREIVR_*_DIR overrides, but not recommended.
Use relative paths inside config.json (e.g. folder: "YouTube/Channel").
Version build arg
docker build -f docker/Dockerfile --build-arg RETREIVR_VERSION=1.1.9 -t retreivr:latest .Notes
- Bind to all interfaces in containers with
RETREIVR_HOST=0.0.0.0if needed. - Consider running as a non-root user with a fixed UID/GID to match volume permissions.
- Optional services are designed to be enabled from Retreivr's
SetupUI, which writes a managed env block and generates the exactdocker compose --profile ... up -dcommand to run. resolution_api.upstream_base_urlis optional. Leave local cache sync off unless this node should mirror another Retreivr Resolution API node.- If you do enable local cache sync, set:
resolution_api.upstream_base_urlresolution_api.sync_enabled=trueresolution_api.local_node_id