Bazarr Docker Compose (Subtitles for Radarr + Sonarr)
A ready-to-run docker-compose service for Bazarr — the subtitle companion that watches your Radarr and Sonarr libraries and downloads matching subtitles automatically.
yaml# docker-compose service for Bazarr. It must share the SAME /data media
# root as Radarr and Sonarr, at the SAME path, so it can write .srt files
# next to the videos. Add this alongside your existing arr services.
services:
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
environment:
- PUID=1000 # match the user that owns your media files
- PGID=1000
- TZ=America/New_York # your timezone
ports:
- "6767:6767"
volumes:
- /opt/bazarr:/config
- /data:/data # MUST be the same mount Radarr/Sonarr use
restart: unless-stopped
What this does
Runs Bazarr, the subtitle companion to Radarr and Sonarr. Bazarr reads the libraries those apps manage over their APIs, works out which subtitle languages are missing, downloads matches from providers like OpenSubtitles, and writes standard .srt files next to your videos so Plex or Jellyfin show them as selectable tracks. The full walkthrough — providers, languages profiles, and scoring — is in Bazarr: Automatic Subtitles for Your Arr Stack.
Prerequisites
- Docker + Docker Compose (install guide)
- A working Arr stack — Radarr and Sonarr running and reachable
- The single-root
/datalayout the rest of the stack uses
Deploy
Add the service above to your existing media docker-compose.yml, then:
docker compose up -d bazarr
docker compose logs -f bazarr
Open http://<host-ip>:6767, then under Settings → Sonarr and Settings → Radarr enter each app’s address and API key. Under Settings → Languages create a languages profile and set it as default; under Settings → Providers enable at least one provider and sign in.
Notes
- Make these values your own before running:
PUID/PGID(match the user that owns your media),TZ(your timezone),/opt/bazarr(host config path),/data(must be the identical mount Radarr and Sonarr use), and the Radarr/Sonarr API keys you enter in the UI (keep them in your secret store, never in a note). If a value looks specific to one machine, it’s a placeholder to change — not a literal to copy. - Same media path, same PUID as the Arr apps. The most common failure is Bazarr finding subtitles but failing to save them — a path or permission mismatch. Mount the media root identically and use one
PUID/PGIDacross Radarr, Sonarr, and Bazarr. - Path mappings are a fallback, not the goal. If the paths genuinely differ, add a path mapping in Bazarr’s settings; the clean fix is to mount
/datathe same everywhere so none is needed. - Provider limits are real. Free provider tiers cap daily downloads; a large first-time backfill will pause and resume on the next scheduled run.