Environment Variables
Use the web app’s Settings pages for playback preferences and library configuration. Environment variables control how the server starts.
Docker Compose settings
The Docker Compose guide sets the image version, ports, source paths, and user IDs directly in compose.yaml. No .env file is required.
| Setting | Example | Purpose |
|---|---|---|
image | registry.norri.tv/norri/norri:latest | The recommended public release. Use a numbered tag if you want to stay on a specific version. |
ports | "11423:11423" | Host port first, container port second. |
Media path before :/media/ | /path/to/movies | Existing absolute host directory. |
Destination below /media | /media/Movies | Unique read-only destination below /media. |
PUID / PGID | Your user’s numeric IDs | Identity used to read media and write application state. The image defaults to 99:100; the example sets these explicitly. IDs 0 and 999 are not allowed. |
To use host port 12080, change the mapping to "12080:11423", run docker compose up -d, and open http://your-server-address:12080. Keep the container port at 11423. The Host port field in Settings → General → Network records this number; it does not change the Docker mapping.
Server environment
Set these under the service’s environment section in Compose or using -e with docker run:
| Variable | Default | Purpose |
|---|---|---|
PORT | 11423 | TCP port on which the server listens. |
LOG_LEVEL | info | Logging level. Use debug temporarily when diagnosing a problem. |
NORRI_DATA_DIR | /var/lib/norri in Docker | Configuration, artwork, and cache location. |
NORRI_MEDIA_DIR | /media | Absolute media root. Library folders must stay inside it. |
NORRI_TRUSTED_PROXIES | Empty | Comma-separated proxy IP addresses or CIDR ranges allowed to supply the original client address. |
NORRI_SETUP_HOSTS | Empty | Additional trusted local hostnames or hostname-and-port pairs for first-run setup. |
TMDB_API_KEY | Empty | Optional override for movie and TV metadata. Normal setup does not require your own key. |
ACOUSTID_API_KEY | Empty | Optional override for music fingerprint lookups. Normal setup does not require your own key. |
ACCESS_TOKEN_DURATION | 900 seconds | Access-token lifetime. |
REFRESH_TOKEN_DURATION | 2592000 seconds | Saved sign-in lifetime, 30 days by default. |
The container initializes its private PostgreSQL connection and authentication secret. Keep its database and application-data volumes. You do not need to configure a separate database for the standard installation.
Logging example
environment:
PORT: "11423"
LOG_LEVEL: "debug"
Recreate the container after changing its environment. Return LOG_LEVEL to info after diagnosis. See Logs and Reverse Proxy Setup for related guidance.