Universal beginner-friendly instructions for installing and updating Tunarr in Docker on Ubuntu with Intel Quick Sync GPU acceleration. Adapt the port and config path for each computer.
| Setting | Computer 1 (Media PC 1) | Computer 2 (Media PC 2) |
|---|---|---|
| Hostname | MediaPC1 | MediaPC2 |
| Tunarr Port | 5173 | 5174 |
| Config Path | /home/brent (same on both) | |
| GPU Device | /dev/dri โ card1 + renderD128 | |
| Required Groups | --group-add 44 --group-add 992 (video + render) | |
| Backups Location | /home/brent/backups/ | |
| Web URL | http://localhost:5173 | http://localhost:5174 |
All Tunarr data lives at /home/brent on the host. It is never erased when you update or recreate the container.
Tunarr gets media from your NAS. No local media folder is mounted โ this is correct for your setup.
Uses /dev/dri with card1 & renderD128. Needs both group 44 (video) and 992 (render).
Ctrl + Alt + T on your keyboard. To paste into Terminal, use Ctrl + Shift + V (not Ctrl+V). You won't see characters when typing passwords โ that's normal.
If you're setting up a new computer, the group numbers might be different. Run these two commands first to find your system's actual values:
# Check your GPU is present ls -la /dev/dri # Find the group numbers (use these in --group-add) getent group video getent group render
The number at the end of each line (e.g., video:x:44 โ use 44) is what you put in the --group-add flags. On your current identical computers, these are 44 and 992.
Follow these steps in order. Replace [YOUR_PORT] with your computer's port (5173 or 5174).
# Copy backups to a safe second location sudo cp -r /home/brent/backups ~/tunarr-backups-$(date +%Y-%m-%d-%H%M) # Verify backup files and database exist ls -la /home/brent/backups/ ls -lh /home/brent/db.db
docker stop tunarr docker rm tunarr
docker pull chrisbenincasa/tunarr:latest
[YOUR_PORT] below with 5173 for Computer 1 or 5174 for Computer 2. This is the only line that changes between computers.
docker run -d \ --name tunarr \ -v /home/brent:/config/tunarr \ -p [YOUR_PORT]:8000 \ -e TZ=America/Los_Angeles \ --device /dev/dri:/dev/dri \ --group-add 44 \ --group-add 992 \ --restart unless-stopped \ chrisbenincasa/tunarr:latest
| Flag | What It Does (Plain English) |
|---|---|
| --name tunarr | Names the container "tunarr" so you can refer to it easily |
| -v /home/brent:/config/tunarr | Connects your config folder to the container โ this is where your channels and database live |
| -p [PORT]:8000 | Makes Tunarr available at your chosen port (5173 or 5174) |
| -e TZ=America/Los_Angeles | Sets the timezone to Pacific |
| --device /dev/dri:/dev/dri | Passes your Intel GPU into the container for hardware transcoding |
| --group-add 44 | Gives permission to use the "video" group (for card1) |
| --group-add 992 | Gives permission to use the "render" group (for renderD128) |
| --restart unless-stopped | Automatically restarts Tunarr if the computer reboots |
# Is the container running? docker ps | grep tunarr # Can the container see the GPU? docker exec -it tunarr ls -la /dev/dri # Are your backups still safe? ls -la /home/brent/backups/
crw-rw---- 1 root video 226, 1 ... card1 crw-rw---- 1 root 992 226, 128 ... renderD128
docker logs tunarr 2>&1 | grep -i "qsv\|vaapi\|hwaccel" | tail -5
-hwaccel qsv and -qsv_device /dev/dri/renderD128 in the output.docker image prune -f
Verify these in the Tunarr web UI after every update.
/dev/dri/renderD128)docker ps -a then docker logs tunarr--device /dev/dri:/dev/dri flag is missing. Recreate the container with Step 3.--group-add 44 --group-add 992. Run getent group render on a new system to find the correct number.sudo chown -R 1000:1000 /home/brentls -la /dev/dri then getent group video and getent group render to discover device names and group numbers