Computer 2 โ€” Media PC 2 โ— Docker ยท Ubuntu ยท Intel Quick Sync

Tunarr Update Guide

Complete beginner-friendly instructions for updating Tunarr on Computer 2 (port 5174). Preserves all channels, NAS sources, schedules, and Intel GPU acceleration.

โฑ 3โ€“15 minutes โŠ˜ Last verified: March 17, 2026 โ†’ Port: 5174
๐Ÿ“

Your Config & Database

All your Tunarr data lives at /home/brent on the host. This is never erased when you update the container.

๐ŸŽฌ

Media from NAS

Tunarr gets its media from your NAS. No media folder is mounted locally โ€” this is normal for your setup.

โšก

Intel GPU (Quick Sync)

Your GPU is at /dev/dri/card1 & renderD128. Requires both groups: video (44) and render (992).

How It All Connects

Host Config
/home/brent
โ†’
Container
tunarr:latest
โ†’
Intel GPU
/dev/dri (QSV)
โ†’
Web UI
:5174 โ†’ :8000

Update Workflow at a Glance

0
Backup
โ†’
1
Pull Image
โ†’
2
Stop & Remove
โ†’
3
Recreate
โ†’
4
Verify GPU
โ†’
5
Test
โ†’
6
Cleanup
๐Ÿง How to open Terminal: Press Ctrl + Alt + T on your keyboard. A dark window will appear where you type commands. To paste into Terminal, use Ctrl + Shift + V (not Ctrl+V).
๐Ÿ”„ Part 1: Updating Tunarr

Follow these steps in order whenever a new Tunarr version is released.

0
Backup Your Config
Always do this first โ€” may take a few minutes with large backup folders

This copies your backup folder to a safe second location, just in case. It will ask for your password โ€” type it and press Enter. You won't see the characters as you type โ€” that's normal.

bash
# Copy backups to a safe second location
sudo cp -r /home/brent/backups ~/tunarr-backups-$(date +%Y-%m-%d-%H%M)

Then verify the backup copy is complete and matches the original:

bash
# Verify originals exist
ls -la /home/brent/backups/
ls -lh /home/brent/db.db

# Verify backup copy is complete (file count and sizes should match)
ls -la ~/tunarr-backups-*/
โ„น๏ธ You should see your backup .tar files and a db.db file. These are your channels, schedules, and settings. Make sure the backup copy has the same number of files and matching file sizes as the original before proceeding.
1
Pull the Newest Image
Downloads the latest version while Tunarr is still running โ€” minimizes downtime
bash
docker pull chrisbenincasa/tunarr:latest
โœ“ What you should see
"Status: Downloaded newer image"  โ†’  New version downloaded!
"Image is up to date"             โ†’  You already have the latest.
2
Stop & Remove the Old Container
This only removes the container โ€” not your data
bash
# Stop the container (safe even if already stopped)
docker stop tunarr

# Remove it (frees the name so we can recreate it)
docker rm tunarr
๐Ÿ’ก "No such container" is normal and okay โ€” it just means the container was already gone.
3
Recreate the Container with GPU Support
The main command โ€” copy-paste the entire block
โš ๏ธ Copy this entire block as one command. Highlight everything, then use Ctrl + Shift + V to paste it into Terminal.
bash โ€” Computer 2 docker run command
docker run -d \
  --name tunarr \
  -v /home/brent:/config/tunarr \
  -p 5174:8000 \
  -e TZ=America/Los_Angeles \
  --device /dev/dri:/dev/dri \
  --group-add 44 \
  --group-add 992 \
  --restart unless-stopped \
  chrisbenincasa/tunarr:latest

You should see a long ID number appear โ€” that means the container was created successfully.

What Each Flag Does

FlagWhat it does (plain English)
--name tunarrNames the container "tunarr" so you can refer to it easily
-v /home/brent:/config/tunarrConnects your config folder to the container โ€” this is where your channels and database live
-p 5174:8000Makes Tunarr available at port 5174 on this computer (Computer 2's port)
-e TZ=America/Los_AngelesSets the timezone to Pacific
--device /dev/dri:/dev/driPasses your Intel GPU into the container
--group-add 44Gives permission to use the "video" group (for card1)
--group-add 992Gives permission to use the "render" group (for renderD128)
--restart unless-stoppedAutomatically restarts Tunarr if the computer reboots
4
Verify Startup & GPU
Wait for startup โ€” may take 5โ€“15 minutes if database migrations are running
โณ Major version updates may trigger database migrations and Meilisearch reindexing. With a large database, this can take 5โ€“15+ minutes. The web UI will not load until migrations finish. Check the logs (below) to monitor progress โ€” don't panic if the UI doesn't load right away.
bash
# Is the container running?
docker ps | grep tunarr

# Check the new version
docker inspect tunarr | grep "image.version"

# Check startup logs for migration status
docker logs tunarr --tail 30

# Can the container see the GPU?
docker exec -it tunarr ls -la /dev/dri

# Are your backups still safe?
ls -la /home/brent/backups/
โœ“ GPU output should look like this
crw-rw---- 1 root video 226,   1 ... card1
crw-rw---- 1 root  992  226, 128 ... renderD128
โœ… If you see both card1 and renderD128 โ†’ your Intel GPU is available for hardware transcoding!
๐Ÿ“‹ If the logs show "Running database migration" โ€” sit tight. This is normal after a version jump. The web UI won't respond until all migrations complete. Check progress with: docker logs tunarr --tail 20
5
Test Everything Works
Verify in the browser and in TiviMate
Open browser โ†’ http://localhost:5174
Go to Settings โ†’ About โ€” confirm version is current
Go to Channels โ†’ play a channel in the web preview
In TiviMate: Playlist โ†’ Edit โ†’ Update, then test a channel

To confirm the GPU is being used for transcoding, play a channel and then run:

bash โ€” confirm GPU is active
docker logs tunarr 2>&1 | grep -i "qsv\|vaapi\|hwaccel" | tail -5
โœ… If you see -hwaccel qsv and -qsv_device /dev/dri/renderD128 in the output โ†’ the GPU is doing the work!
๐Ÿšจ If you get errors, check the logs: docker logs tunarr | tail -100
6
Clean Up
Remove old images and the safety backup โ€” frees significant disk space

Once you've confirmed everything works, clean up old Docker images and remove the safety backup copy:

bash โ€” remove unused Docker images
docker image prune -a --filter "until=24h"

When prompted "Are you sure?", type Y and press Enter.

bash โ€” remove the safety backup copy
# List your backup copies to find the right folder name
ls -d ~/tunarr-backups-*

# Remove it (replace the date/time with your actual folder name)
sudo rm -rf ~/tunarr-backups-YYYY-MM-DD-HHMM
๐Ÿ’ก Backup retention tip: Your daily backups in /home/brent/backups/ can grow very large over time (7โ€“10 GB each). Consider periodically removing old backups and keeping only the 3โ€“5 most recent. For example:
ls -lh /home/brent/backups/ to review, then sudo rm /home/brent/backups/tunarr-backup-OLDDATE*.tar to remove old ones.
โš™๏ธ FFmpeg / GPU Settings in Tunarr

These should already be set if you've configured Tunarr before. Verify them after any update.

In your browser at http://localhost:5174:

Go to Settings โ†’ FFMPEG โ†’ Transcode Configs
Open your transcode config (e.g., "UHD (QSV)")
Hardware Acceleration should be set to Intel QuickSync
QSV Device โ†’ leave blank (defaults to /dev/dri/renderD128 on Linux)
Under Advanced Options: Disable Hardware Decoding โ€” unchecked
Under Advanced Options: Disable Hardware Encoding โ€” unchecked
Under Advanced Options: Disable Hardware Filters โ€” unchecked
๐Ÿ”ง Troubleshooting

Container won't start

Check status: docker ps -a then check logs: docker logs tunarr

Web UI won't load after update

This is usually caused by database migrations or Meilisearch reindexing after a version jump. Check docker logs tunarr --tail 50 โ€” if you see "Running database migration" messages, just wait. With large databases (several GB), migrations can take 5โ€“15+ minutes. Meilisearch reindexing may also consume heavy CPU/RAM temporarily. Monitor with docker exec tunarr ps aux โ€” once Meilisearch CPU drops, the web server should start.

"No such file or directory" for /dev/dri inside container

The --device /dev/dri:/dev/dri flag is missing. You need to stop, remove, and recreate the container with the correct command from Step 3.

"Unable to find group render" error

Use the group numbers instead of names: --group-add 44 --group-add 992

Permission denied on db.db

Fix ownership: sudo chown -R 1000:1000 /home/brent

500 error in TiviMate but web preview works

Clear TiviMate cache or remove and re-add the playlist

GPU not being used (no "qsv" in logs)

Check Tunarr UI โ†’ Settings โ†’ FFMPEG โ†’ Transcode Configs โ†’ Hardware Acceleration should be "Intel QuickSync"

Check if the host GPU is working

On the host run: ls -la /dev/dri โ€” you should see card1 and renderD128