Getting Started

Prerequisites

You need Docker and Docker Compose installed on your server. Any Linux distribution with Docker CE works. Bazarr+ also runs on macOS and Windows via Docker Desktop, though Linux is recommended for production.

Make sure your Sonarr and/or Radarr instances are accessible from the machine where you will run Bazarr+.

One-liner install

The fastest way to get running. This script creates a bazarr directory, writes a docker-compose.yml, and starts the containers.

Shell
curl -fsSL https://lavx.github.io/bazarr/install.sh | bash

The script is interactive. It will ask for your media paths, timezone, and whether you want to enable the AI translation service. You can review the script source on GitHub before running it.

Docker Compose setup

If you prefer to set things up manually, create a docker-compose.yml with the following content. Adjust the volume paths to match your media library locations.

docker-compose.yml
services:
  bazarr:
    image: ghcr.io/lavx/bazarr:latest
    container_name: bazarr
    restart: unless-stopped
    depends_on:
      opensubtitles-scraper:
        condition: service_healthy
    ports:
      - 6767:6767
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
      - OPENSUBTITLES_SCRAPER_URL=http://opensubtitles-scraper:8000
    volumes:
      - ./config:/config
      - /path/to/movies:/movies
      - /path/to/tv:/tv
    healthcheck:
      test: ["CMD-SHELL", "curl -sf http://localhost:6767/_supervisor/status | grep -q '\"running\"'"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s

  opensubtitles-scraper:
    image: ghcr.io/lavx/opensubtitles-scraper:latest
    container_name: opensubtitles-scraper
    restart: unless-stopped
    depends_on:
      flaresolverr:
        condition: service_healthy
    ports:
      - 8000:8000
    environment:
      - FLARESOLVERR_URL=http://flaresolverr:8191/v1
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

  # Handles Cloudflare challenges for the scraper
  flaresolverr:
    image: ghcr.io/flaresolverr/flaresolverr:latest
    container_name: flaresolverr
    restart: unless-stopped
    environment:
      - LOG_LEVEL=info
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:8191/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

  # AI translation via OpenRouter (free tiers available)
  # Configure the API key in Settings > AI Translator
  ai-subtitle-translator:
    image: ghcr.io/lavx/ai-subtitle-translator:latest
    container_name: ai-subtitle-translator
    restart: unless-stopped
    ports:
      - 8765:8765
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost:8765/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

Then start it:

Shell
docker compose up -d

First login

Open http://localhost:6767 in your browser. Go to Settings to configure your language profile, subtitle providers, and Sonarr/Radarr connections.

  1. Set a password. Bazarr+ uses PBKDF2 with 600k iterations, a significant upgrade from upstream's MD5 hashing. Pick something strong.
  2. Choose your languages. Select the subtitle languages you want Bazarr+ to search for. You can set defaults per profile or override per series/movie later.
  3. Add subtitle providers. Enable OpenSubtitles.org in the provider list. The bundled scraper is already connected, so no credentials are needed. Add any additional providers you have accounts with: Addic7ed, Podnapisi, Subscene, and so on.
  4. Set provider priority. Enable the priority toggle in Settings > Subtitle Sources and assign numeric priority values to each provider. Bazarr+ will try them in priority order and can stop early once it finds a match, saving time and API calls.

Connecting to Sonarr and Radarr

Go to Settings > Sonarr (or Radarr) and fill in:

  • Host and port of your Sonarr/Radarr instance (e.g., 192.168.1.10:8989)
  • API key, found in Sonarr/Radarr under Settings > General
  • Base URL, only needed if you run Sonarr/Radarr behind a reverse proxy with a path prefix

Click Test to verify the connection, then Save. Bazarr+ will sync your library and start searching for missing subtitles on the next scheduled scan.

Tip: If Sonarr/Radarr and Bazarr+ share the same Docker network, use the container name as the host (e.g., sonarr instead of an IP address). This avoids issues when IP addresses change.

Next steps