Getting Started
This page sets Sovereign up with Docker Compose: copy the example below, fill in your values, and run docker compose up -d. If you’d rather use plain docker run or a Kubernetes cluster, the Docker and Kubernetes pages cover those.
Prerequisites
Section titled “Prerequisites”- Docker 24+ on an x86-64 Linux host
- A running Radarr and/or Sonarr instance with an API key, or a directory of media files (see Filesystem Media Sources)
- Your media files accessible to the host (local path or network share)
- A reverse proxy that serves Sovereign over HTTPS at the address your users will type, such as Caddy, Traefik or Nginx. Sovereign doesn’t terminate TLS itself, and without HTTPS your users’ passwords cross the network in the clear
- Hardware sized for the number of people watching - see System Requirements
Quick Start
Section titled “Quick Start”Create a sovereign.env file for your sensitive values, and keep it out of version control:
Sovereign__Authentication__AdminUsername=adminSovereign__Authentication__AdminPassword=Admin1!Sovereign__DataSources__Radarr__0__ApiKey=<radarr-api-key>Create a compose.yaml alongside it:
name: sovereignservices: server: image: <sovereign-image>:<version> env_file: - sovereign.env environment: Sovereign__Authentication__Issuer: https://media.example.com/ Sovereign__Network__TrustedProxyNetwork__0: 172.16.0.0/12 Sovereign__DataSources__Radarr__0__Url: http://radarr:7878 ports: - 5000:5000 volumes: - sovereign-data:/sovereign-data - /path/to/media:/media:ro
volumes: sovereign-data:Replace <sovereign-image> and <version> with the image and a release (the Docker page explains both), and set the issuer to the HTTPS address your reverse proxy serves.
The trusted proxy network tells Sovereign that requests from your reverse proxy carry each user’s real address. 172.16.0.0/12 covers the networks Docker creates by default, which is where a proxy running in Docker or on the same host connects from. If your proxy runs on another machine, use its address instead. Trusted Proxy Networks explains how to find it.
Start the stack:
docker compose up -dPoint your reverse proxy at port 5000, then open the issuer address in a browser. On first run Sovereign creates the admin account from the credentials in sovereign.env, so sign in with those.
A new server starts out Unlicensed. Everything works, but a notice runs across the top of the screen and a short video plays before each title until you start a free trial or buy a license in System > License. Licensing explains the standings and the free trial.
Next Steps
Section titled “Next Steps”- Configuration Overview - full environment variable reference
- System Requirements - CPU, RAM, GPU, and storage sizing
- Transcoding - when Sovereign re-encodes a stream, and why
- Docker - plain
docker runwith env-file secret injection - Docker Compose - NFS volumes and secrets in an env file
- Kubernetes -
Secretmanifest andsecretKeyRefinjection - NFS Media Storage - recommended mount options for a NAS-hosted library
- Hardware Acceleration - expose a GPU for faster transcoding
Titles, artwork, people and descriptions shown in screenshots are fictional and were created for illustration. Sovereign doesn't include or supply any media: it plays the library you bring.