- Document Tdarr node setup on ubuntu-manticore - Include GPU configuration and container setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.4 KiB
Tdarr Setup on ubuntu-manticore
Overview
Tdarr server and GPU-accelerated node deployed on ubuntu-manticore (10.10.0.226) with NVIDIA GTX 1070 for hardware transcoding. Migrated from old server at 10.10.0.43.
Date: 2025-12-04
Architecture
ubuntu-manticore (10.10.0.226)
├── tdarr-server (container)
│ ├── Web UI: http://10.10.0.226:8265
│ ├── Node Port: 8266
│ └── Data: ~/docker/tdarr/server-data/
├── tdarr-node (container)
│ ├── Node Name: manticore-gpu
│ ├── GPU: GTX 1070 (NVENC/NVDEC)
│ └── Cache: /mnt/NV2/tdarr-cache (NVMe)
└── Media: /mnt/truenas/media (CIFS mount)
Docker Compose Configuration
Location: ~/docker/tdarr/docker-compose.yml
version: "3.8"
services:
tdarr:
image: ghcr.io/haveagitgat/tdarr:latest
container_name: tdarr-server
restart: unless-stopped
ports:
- "8265:8265" # Web UI
- "8266:8266" # Server port (for nodes)
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- serverIP=0.0.0.0
- serverPort=8266
- webUIPort=8265
volumes:
- ./server-data:/app/server
- ./configs:/app/configs
- ./logs:/app/logs
- /mnt/truenas/media:/media
tdarr-node:
image: ghcr.io/haveagitgat/tdarr_node:latest
container_name: tdarr-node
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- serverIP=tdarr
- serverPort=8266
- nodeName=manticore-gpu
volumes:
- ./node-data:/app/configs
- /mnt/truenas/media:/media
- /mnt/NV2/tdarr-cache:/temp
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
depends_on:
- tdarr
GPU Configuration
Hardware
- GPU: NVIDIA GeForce GTX 1070 (Pascal architecture)
- Driver: 570.195.03
- CUDA: 12.8
NVENC Capabilities
| Encoder | Supported | Working |
|---|---|---|
| h264_nvenc | Yes | Yes |
| hevc_nvenc | Yes | Yes |
| av1_nvenc | Yes | No (requires Turing+) |
Important Limitation: B-Frames
GTX 1070 does NOT support B-frames for HEVC encoding (Pascal limitation).
If using Tdarr_Plugin_MC93_Migz1FFMPEG or similar plugins:
- Set
enable_bframestofalse - Otherwise you'll get:
Max B-frames 5 exceed 0/No capable devices found
B-frame support for HEVC NVENC requires RTX 20-series (Turing) or newer.
Migration from Old Server
Source
- Server: 10.10.0.43 (ubuntu-ct, SSH alias:
tdarr) - Container: tdarr-clean
- Data:
/home/cal/container-data/tdarr/tdarr-clean/server/(~4.4GB)
Migration Process
# Stop old server
ssh tdarr "docker stop tdarr-clean"
# Pull data to local workstation (relay)
rsync -avz --progress tdarr:/home/cal/container-data/tdarr/tdarr-clean/server/ /tmp/tdarr-server-data/
# Push to new server
rsync -avz --progress /tmp/tdarr-server-data/ cal@10.10.0.226:/home/cal/docker/tdarr/server-data/
# Start new server
ssh cal@10.10.0.226 "cd ~/docker/tdarr && docker compose up -d"
Performance
Observed Speeds
- 1080p H.264 → HEVC: 200+ fps (~8-9x real-time)
- GPU Utilization: 30-60% encoder, 40-70% decoder
- Power Draw: ~52W during transcoding (166W max)
Monitoring GPU Usage
# Basic status
nvidia-smi
# Detailed encoder/decoder utilization
nvidia-smi dmon -s u
Recommended Settings
- GPU Workers: 1 (leaves headroom for Jellyfin)
- CPU Workers: 0 (GPU-only transcoding)
Troubleshooting
Error: "Max B-frames X exceed 0"
Cause: Plugin configured with B-frames, but GTX 1070 doesn't support them for HEVC
Fix: Disable enable_bframes in the plugin settings
Error: "No capable devices found"
Cause: Usually means incompatible encoding parameters, not missing GPU
Check: Run nvidia-smi inside container to verify GPU access:
docker exec tdarr-node nvidia-smi
Slow File Copy (0% progress)
Cause: Large files copying from network share to local cache Expected: ~90 seconds for 10GB file over gigabit Note: This is normal for mapped node architecture - file must copy before transcoding starts
Related Documentation
- Server inventory:
networking/server-inventory.md - Tdarr technology context:
tdarr/CONTEXT.md - Tdarr troubleshooting:
tdarr/troubleshooting.md