Skip to content

Installation

Sublarr ships as a single Docker image. Spin it up, point it at your media directory, and the onboarding wizard handles the rest.

Get a Sublarr instance running and reachable on port 5765.

  • Docker (or Docker Compose — Compose v2 is bundled with modern Docker)
  • A media directory accessible on the host filesystem
  • (Optional) a long random string for SUBLARR_API_KEY if you want to require an X-Api-Key header on every API request — empty disables auth. Provider keys (OpenSubtitles, SubDL, …) are configured later through the UI, not as env vars.

Sublarr runs anywhere Docker runs — linux/amd64 and linux/arm64 (Raspberry Pi 4/5, Synology/QNAP, Unraid, any x86 mini-PC or NAS). The :latest and :stable tags are multi-arch, so Docker pulls the correct image for your host automatically.

Core subtitle management — search, download, scoring, library scan — is lightweight. The AI translation is offloaded to a separate Ollama host or a cloud API (configured under Settings → Translation), so the Sublarr host itself never runs the heavy model.

TierHardwareDatabaseBest for
MinimumRaspberry Pi 4 (2 GB) or any arm64/x86 hostSQLite on SSDSmall libraries, home use
Recommendedx86 mini-PC / NAS / Unraid, 4 GB+ RAMSQLite on SSDMost users
Large / busyRecommended + PostgreSQL + RedisPostgreSQLHundreds of wanted items, multiple users
Terminal window
docker run -d \
--name sublarr \
-p 5765:5765 \
-v <CONFIG_PATH>:/config \
-v <MEDIA_PATH>:/media \
-e PUID=1000 \
-e PGID=1000 \
ghcr.io/abrechen2/sublarr:latest
  • /config — stores the database, logs, and application state; persists across container restarts.
  • /media — mount your media library here; Sublarr treats this as the root path for subtitle operations.
  • PUID / PGID — run as a specific user/group so file permissions match your host (use id to find your values).

For the full list of environment variables accepted at boot, see Environment Variables.

Create a docker-compose.yml:

services:
sublarr:
image: ghcr.io/abrechen2/sublarr:latest
container_name: sublarr
ports:
- "5765:5765"
volumes:
- ./config:/config
- <MEDIA_PATH>:/media:rw
environment:
- PUID=1000
- PGID=1000
restart: unless-stopped

Start the stack:

Terminal window
docker compose up -d
  1. Open the Apps tab and search for Sublarr in Community Applications.
  2. Click Install and configure the template:
    • Config Path: /mnt/user/appdata/sublarr
    • Media Path: your media share (e.g., /mnt/user/media)
  3. Click Apply — the container starts automatically.

All further configuration is done through the web UI at http://<HOST_IP>:5765.

Prefer to let an AI coding agent do this? See Install with an AI agent.

If Sublarr lives behind nginx, Caddy, or NPM, see Reverse Proxy Guide.

Terminal window
curl http://<HOST_IP>:5765/api/v1/health

Expected response: a JSON object with "status":"healthy" and the running version, plus a services block listing what is not configured yet. Then open http://<HOST_IP>:5765/ in a browser — the onboarding wizard takes over.

Sublarr dashboard after the first successful start, showing the empty library and the Add Series prompt.