Docker run
Join the Norri Discord → for setup help, updates, and feedback.
With Docker installed, choose your computer and GPU below. Copy one complete command, change the media folders, and run it. Docker fetches the current public release and creates the data volumes automatically. The image is AMD64 (Intel/AMD 64-bit); Apple Silicon uses emulation.
The Windows examples use Docker Desktop. If you run Docker Engine inside WSL, use the Linux command in your WSL terminal with Linux paths; for NVIDIA, first follow WSL GPU setup.
Choose setup
Replace the example paths before :/media/ with existing folders on your computer. Delete any media mapping you do not need; keep :ro so your files stay read-only. On Linux/Mac, set PUID and PGID to the results of id -u and id -g for the user who can read your media. Use a non-root media account; IDs 0 and 999 are reserved. Unraid commonly uses PUID=99 and PGID=100. For Windows folders, keep 1000.
Linux / NAS — Intel, Intel Arc, or AMD
Run in your Linux terminal. Your graphics driver must expose /dev/dri; the command passes Intel graphics, including Arc, or AMD through to the container.
docker run -d --pull=always --name norri --restart unless-stopped \
--log-driver local --log-opt max-size=10m --log-opt max-file=3 \
-p 11423:11423 -e PUID=1000 -e PGID=1000 \
-v norri_postgres:/var/lib/postgresql/data \
-v norri_data:/var/lib/norri \
-v "/path/to/movies:/media/Movies:ro" \
-v "/path/to/tv:/media/TVShows:ro" \
-v "/path/to/music:/media/Music:ro" \
--device /dev/dri:/dev/dri \
--tmpfs /run:rw,exec,size=16m,mode=0755 \
--security-opt no-new-privileges:true --stop-timeout 45 \
registry.norri.tv/norri/norri:latest
Linux / NAS — NVIDIA
Run in your Linux terminal. Install the NVIDIA driver and NVIDIA Container Toolkit first.
docker run -d --pull=always --name norri --restart unless-stopped \
--log-driver local --log-opt max-size=10m --log-opt max-file=3 \
-p 11423:11423 -e PUID=1000 -e PGID=1000 \
-v norri_postgres:/var/lib/postgresql/data \
-v norri_data:/var/lib/norri \
-v "/path/to/movies:/media/Movies:ro" \
-v "/path/to/tv:/media/TVShows:ro" \
-v "/path/to/music:/media/Music:ro" \
--gpus all \
--tmpfs /run:rw,exec,size=16m,mode=0755 \
--security-opt no-new-privileges:true --stop-timeout 45 \
registry.norri.tv/norri/norri:latest
Linux / NAS — Intel/AMD and NVIDIA
Run in your Linux terminal. Use this if you want to expose both kinds of GPU. You need /dev/dri, the NVIDIA driver, and NVIDIA Container Toolkit.
docker run -d --pull=always --name norri --restart unless-stopped \
--log-driver local --log-opt max-size=10m --log-opt max-file=3 \
-p 11423:11423 -e PUID=1000 -e PGID=1000 \
-v norri_postgres:/var/lib/postgresql/data \
-v norri_data:/var/lib/norri \
-v "/path/to/movies:/media/Movies:ro" \
-v "/path/to/tv:/media/TVShows:ro" \
-v "/path/to/music:/media/Music:ro" \
--device /dev/dri:/dev/dri --gpus all \
--tmpfs /run:rw,exec,size=16m,mode=0755 \
--security-opt no-new-privileges:true --stop-timeout 45 \
registry.norri.tv/norri/norri:latest
Linux / NAS — no GPU
Run in your Linux terminal. Video conversion uses the CPU; compatible media can play directly.
docker run -d --pull=always --name norri --restart unless-stopped \
--log-driver local --log-opt max-size=10m --log-opt max-file=3 \
-p 11423:11423 -e PUID=1000 -e PGID=1000 \
-v norri_postgres:/var/lib/postgresql/data \
-v norri_data:/var/lib/norri \
-v "/path/to/movies:/media/Movies:ro" \
-v "/path/to/tv:/media/TVShows:ro" \
-v "/path/to/music:/media/Music:ro" \
--tmpfs /run:rw,exec,size=16m,mode=0755 \
--security-opt no-new-privileges:true --stop-timeout 45 \
registry.norri.tv/norri/norri:latest
Windows — NVIDIA
Run in PowerShell. Docker Desktop needs Linux containers, its WSL2 backend, and NVIDIA GPU support. Use Windows paths with forward slashes as shown.
docker run -d --pull=always --name norri --restart unless-stopped `
--log-driver local --log-opt max-size=10m --log-opt max-file=3 `
-p 11423:11423 -e PUID=1000 -e PGID=1000 `
-v norri_postgres:/var/lib/postgresql/data `
-v norri_data:/var/lib/norri `
-v "D:/Movies:/media/Movies:ro" `
-v "D:/TV:/media/TVShows:ro" `
-v "D:/Music:/media/Music:ro" `
--gpus all `
--tmpfs /run:rw,exec,size=16m,mode=0755 `
--security-opt no-new-privileges:true --stop-timeout 45 `
registry.norri.tv/norri/norri:latest
Windows — no GPU
Run in PowerShell with Docker Desktop using Linux containers and the WSL2 backend. Use Windows paths with forward slashes as shown. Video conversion uses the CPU.
docker run -d --pull=always --name norri --restart unless-stopped `
--log-driver local --log-opt max-size=10m --log-opt max-file=3 `
-p 11423:11423 -e PUID=1000 -e PGID=1000 `
-v norri_postgres:/var/lib/postgresql/data `
-v norri_data:/var/lib/norri `
-v "D:/Movies:/media/Movies:ro" `
-v "D:/TV:/media/TVShows:ro" `
-v "D:/Music:/media/Music:ro" `
--tmpfs /run:rw,exec,size=16m,mode=0755 `
--security-opt no-new-privileges:true --stop-timeout 45 `
registry.norri.tv/norri/norri:latest
macOS — Intel or Apple Silicon
Run in Terminal with Docker Desktop open. External drives use /Volumes/DRIVE/FOLDER. Allow Docker access to your media folders. Docker handles emulation on Apple Silicon. Docker Desktop does not provide Mac GPU access to this container, so Norri uses the CPU when media needs transcoding.
docker run -d --pull=always --name norri --restart unless-stopped \
--log-driver local --log-opt max-size=10m --log-opt max-file=3 \
-p 11423:11423 -e PUID=501 -e PGID=20 \
-v norri_postgres:/var/lib/postgresql/data \
-v norri_data:/var/lib/norri \
-v "/Users/YOUR_NAME/Movies:/media/Movies:ro" \
-v "/Users/YOUR_NAME/TV:/media/TVShows:ro" \
-v "/Users/YOUR_NAME/Music:/media/Music:ro" \
--platform linux/amd64 \
--tmpfs /run:rw,exec,size=16m,mode=0755 \
--security-opt no-new-privileges:true --stop-timeout 45 \
registry.norri.tv/norri/norri:latest
Keep a copy of your customized command for future updates.
Open setup
Open http://localhost:11423 on that computer, or http://YOUR_SERVER_IP:11423 from another device. Complete setup, then add your libraries using /media/Movies, /media/TVShows, or /media/Music for the folders you kept.
Want the native apps? Get the iPhone, iPad, and Apple TV apps.
Prefer a saved configuration? Use Docker Compose or the Mac Compose guide. For NAS container managers, extra folders, or updates, see the Docker reference.