All checks were successful
Reindex Knowledge Base / reindex (push) Successful in 3s
Adds title, description, type, domain, and tags frontmatter to every doc for improved KB semantic search. The description field is prepended to every search chunk, and domain/type/tags enable filtered queries. Type values: context, guide, runbook, reference, troubleshooting Domain values match directory structure (networking, docker, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.7 KiB
5.7 KiB
| title | description | type | domain | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tdarr Node Container Configurations | Reference examples for Tdarr node containers: CPU-only Docker Compose, GPU-accelerated Podman (mapped and unmapped), GPU Docker Compose, environment variables, volume mounts, and platform-specific recommendations. | reference | tdarr |
|
Tdarr Node Container Configurations
Overview
Complete examples for running Tdarr transcoding nodes in containers, covering both CPU-only and GPU-accelerated setups.
CPU-Only Configuration (Docker Compose)
For systems without GPU or when GPU isn't needed:
version: "3.4"
services:
tdarr-node:
container_name: tdarr-node-cpu
image: ghcr.io/haveagitgat/tdarr_node:latest
restart: unless-stopped
environment:
- TZ=America/Chicago
- UMASK_SET=002
- nodeName=local-workstation-cpu
- serverIP=YOUR_TDARR_SERVER_IP # Replace with your tdarr server IP
- serverPort=8266
- inContainer=true
- ffmpegVersion=6
volumes:
# Mount your media from the same NAS share as the server
- /path/to/your/media:/media # Replace with your local media mount
# Temp directory for transcoding cache
- ./temp:/temp
Use case:
- CPU-only transcoding
- Testing Tdarr functionality
- Systems without dedicated GPU
- When GPU drivers aren't available
GPU-Accelerated Configuration (Podman)
Recommended for Fedora/RHEL/CentOS/Nobara systems:
Mapped Node (Direct Media Access)
podman run -d --name tdarr-node-gpu-mapped \
--gpus all \
--restart unless-stopped \
-e TZ=America/Chicago \
-e UMASK_SET=002 \
-e nodeName=local-workstation-gpu-mapped \
-e serverIP=10.10.0.43 \
-e serverPort=8266 \
-e inContainer=true \
-e ffmpegVersion=6 \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e NVIDIA_VISIBLE_DEVICES=all \
-v /mnt/NV2/tdarr-cache:/cache \
-v /mnt/media/TV:/media/TV \
-v /mnt/media/Movies:/media/Movies \
-v /mnt/media/tdarr/tdarr-cache-clean:/temp \
ghcr.io/haveagitgat/tdarr_node:latest
Unmapped Node (Downloads Files)
podman run -d --name tdarr-node-gpu-unmapped \
--gpus all \
--restart unless-stopped \
-e TZ=America/Chicago \
-e UMASK_SET=002 \
-e nodeName=local-workstation-gpu-unmapped \
-e serverIP=10.10.0.43 \
-e serverPort=8266 \
-e inContainer=true \
-e ffmpegVersion=6 \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e NVIDIA_VISIBLE_DEVICES=all \
-v /mnt/NV2/tdarr-cache:/cache \
-v /mnt/media:/media \
-v /mnt/media/tdarr/tdarr-cache-clean:/temp \
ghcr.io/haveagitgat/tdarr_node:latest
Use cases:
- Mapped: Direct media access, faster processing, no file downloads
- Unmapped: Works when network shares aren't available locally
- Hardware video encoding/decoding (NVENC/NVDEC)
- High-performance transcoding with NVMe cache
- Multiple concurrent streams
- Fedora-based systems where Podman works better than Docker
GPU-Accelerated Configuration (Docker)
For Ubuntu/Debian systems where Docker GPU support works:
version: "3.4"
services:
tdarr-node:
container_name: tdarr-node-gpu
image: ghcr.io/haveagitgat/tdarr_node:latest
restart: unless-stopped
environment:
- TZ=America/Chicago
- UMASK_SET=002
- nodeName=local-workstation-gpu
- serverIP=YOUR_TDARR_SERVER_IP
- serverPort=8266
- inContainer=true
- ffmpegVersion=6
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- /path/to/your/media:/media
- ./temp:/temp
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Configuration Parameters
Required Environment Variables
TZ: Timezone (e.g.,America/Chicago)nodeName: Unique identifier for this nodeserverIP: IP address of Tdarr serverserverPort: Tdarr server port (typically 8266)inContainer: Set totruefor containerized deploymentsffmpegVersion: FFmpeg version to use (6 recommended)
GPU-Specific Variables
NVIDIA_DRIVER_CAPABILITIES: Set toallfor full GPU accessNVIDIA_VISIBLE_DEVICES:allfor all GPUs, or specific GPU IDs
Volume Mounts
/media: Mount point for media files (must match server configuration)/temp: Temporary directory for transcoding cache
Platform-Specific Recommendations
Fedora/RHEL/CentOS/Nobara
- GPU: Use Podman (Docker Desktop has GPU issues)
- CPU: Docker or Podman both work fine
Ubuntu/Debian
- GPU: Use Docker with nvidia-container-toolkit
- CPU: Docker recommended
Testing GPU Functionality
Verify GPU access inside container:
# For Podman
podman exec tdarr-node-gpu nvidia-smi
# For Docker
docker exec tdarr-node-gpu nvidia-smi
Test NVENC encoding:
# For Podman
podman exec tdarr-node-gpu /usr/local/bin/tdarr-ffmpeg -f lavfi -i testsrc2=duration=5:size=1920x1080:rate=30 -c:v h264_nvenc -t 5 /tmp/test.mp4
# For Docker
docker exec tdarr-node-gpu /usr/local/bin/tdarr-ffmpeg -f lavfi -i testsrc2=duration=5:size=1920x1080:rate=30 -c:v h264_nvenc -t 5 /tmp/test.mp4
Troubleshooting
- GPU not detected: See
reference/docker/nvidia-gpu-troubleshooting.md - Permission issues: Ensure proper UMASK_SET and volume permissions
- Connection issues: Verify serverIP and firewall settings
- Performance issues: Monitor CPU/GPU utilization during transcoding
Related Documentation
patterns/docker/gpu-acceleration.md- GPU acceleration patternsreference/docker/nvidia-gpu-troubleshooting.md- Detailed GPU troubleshootingstart-tdarr-gpu-podman.sh- Ready-to-use Podman startup script