Unraid
Via Community Apps
Section titled “Via Community Apps”Once listed, installation is straightforward:
- Go to the Apps tab
- Search for dubby or dubbytv
- Click Install
- Configure the template (see paths and variables below)
- Click Apply
Manual installation
Section titled “Manual installation”- Go to Docker > Add Container
- Set Repository:
dubbytv/dubby:beta - Add port mapping:
3000→3000 - Add the volume paths and environment variables below
- For GPU transcoding, see Hardware acceleration
- Click Apply
Volume paths
Section titled “Volume paths”| Container path | Host path | Mode | Description |
|---|---|---|---|
/data | /mnt/user/appdata/dubby | rw | Database, images, trickplay |
/cache | /mnt/user/appdata/dubby/cache | rw | Transcode segments (ephemeral) |
/media | /mnt/user/media | ro | Media library |
Environment variables
Section titled “Environment variables”| Name | Required | Value |
|---|---|---|
BETTER_AUTH_SECRET | Yes | Generate with openssl rand -base64 32 |
TMDB_API_KEY | No | TMDB API key for metadata. Free at themoviedb.org. Can be set in the UI. |
Hardware acceleration
Section titled “Hardware acceleration”Intel Quick Sync
Section titled “Intel Quick Sync”Add the GPU device in the container settings:
- Device:
/dev/dri→/dev/dri
Or in the Extra Parameters field:
--device=/dev/driThe Intel GPU TOP plugin is optional — it provides GPU utilization monitoring on the Unraid dashboard but is not required for transcoding.
NVIDIA GPU
Section titled “NVIDIA GPU”NVIDIA GPU passthrough on Unraid requires the Nvidia-Driver plugin:
- Install Nvidia-Driver from Community Apps
- Select your driver version in Settings > Nvidia-Driver and reboot
- Note the GPU UUID listed on the plugin settings page
- Edit the Dubby container and add to Extra Parameters:
--runtime=nvidia- Add these environment variables:
| Name | Value |
|---|---|
NVIDIA_VISIBLE_DEVICES | GPU UUID from plugin settings |
NVIDIA_DRIVER_CAPABILITIES | all |
No GPU
Section titled “No GPU”Without a GPU device mapped, Dubby falls back to CPU-based software transcoding (libx264). This works but uses significantly more CPU — see Hardware Acceleration for details.
Template XML
Section titled “Template XML”You can import this template directly in Unraid. Go to Docker > Add Container, switch to Advanced View (top right), and paste this URL in the Template URL field — or save it to /boot/config/plugins/dockerMan/templates-user/dubby.xml.
<?xml version="1.0"?><Container version="2"> <Name>dubby</Name> <Repository>dubbytv/dubby:beta</Repository> <Registry>https://hub.docker.com/r/dubbytv/dubby</Registry> <Network>bridge</Network> <Privileged>false</Privileged> <Support>https://dubby.tv</Support> <Project>https://dubby.tv</Project> <Overview>Self-hosted media server with adaptive streaming, metadata enrichment, and multi-platform clients. Alternative to Plex and Jellyfin.</Overview> <Category>MediaServer:Video</Category> <WebUI>http://[IP]:[PORT:3000]</WebUI> <Icon>https://dubby.tv/icon.png</Icon> <Config Name="Web UI" Target="3000" Default="3000" Mode="tcp" Description="Web interface port" Type="Port" Display="always" Required="true">3000</Config> <Config Name="Data" Target="/data" Default="/mnt/user/appdata/dubby" Mode="rw" Description="Database and configuration" Type="Path" Display="always" Required="true">/mnt/user/appdata/dubby</Config> <Config Name="Cache" Target="/cache" Default="/mnt/user/appdata/dubby/cache" Mode="rw" Description="Transcode cache — use SSD-backed share" Type="Path" Display="always" Required="true">/mnt/user/appdata/dubby/cache</Config> <Config Name="Media" Target="/media" Default="/mnt/user/media" Mode="ro" Description="Media library (movies and TV shows)" Type="Path" Display="always" Required="true">/mnt/user/media</Config> <Config Name="BETTER_AUTH_SECRET" Target="BETTER_AUTH_SECRET" Default="" Mode="" Description="Auth secret — generate with: openssl rand -base64 32" Type="Variable" Display="always" Required="true"></Config> <Config Name="TMDB_API_KEY" Target="TMDB_API_KEY" Default="" Mode="" Description="TMDB API key for metadata (optional — can be set in admin UI)" Type="Variable" Display="always" Required="false"></Config> <Config Name="Intel GPU" Target="" Default="" Mode="" Description="Intel Quick Sync support" Type="Device" Display="advanced" Required="false">/dev/dri</Config></Container>Updating
Section titled “Updating”- Go to the Docker tab
- Click the container icon for dubby
- Click Check for Updates
- If an update is available, click Apply Update
Unraid pulls the new image and recreates the container with the same template settings. No manual reconfiguration is needed. Database migrations run automatically on startup.
To switch to a specific version, click the container icon, select Edit, change the Repository field to the desired tag (e.g., dubbytv/dubby:0.1.0-beta.6), and click Apply.
Troubleshooting
Section titled “Troubleshooting”Container won’t start
Section titled “Container won’t start”Check the container logs from the Docker tab (click the container icon > Logs). Common causes:
- Missing
BETTER_AUTH_SECRET— This is required. Generate one withopenssl rand -base64 32in the Unraid terminal. - Permission errors on
/data— The container runs as UID 1000. Ensure the appdata path is writable.
No media showing after scan
Section titled “No media showing after scan”The library path in the Dubby UI must match the container mount path, not the host path. If your host media is at /mnt/user/media/movies, add /media/movies as the library path in the UI.
GPU not detected
Section titled “GPU not detected”# Check if /dev/dri exists on the hostls -la /dev/dri/
# Verify the device is passed to the containerdocker exec dubby ls -la /dev/dri/
# Check VA-API support (Intel/AMD)docker exec dubby vainfoIf /dev/dri doesn’t exist on the host, your CPU may not have integrated graphics, or the i915/amdgpu kernel module isn’t loaded.
Cache filling up disk
Section titled “Cache filling up disk”Transcode segments are cleaned up when playback sessions end. If the cache grows unexpectedly:
# Check cache sizedu -sh /mnt/user/appdata/dubby/cache
# Safe to delete — will be recreated on next transcoderm -rf /mnt/user/appdata/dubby/cache/*Consider setting cache size limits in Settings > Transcoding in the Dubby admin UI.