From 66d2a4bda7d4761a1af3925e576ec2685e2c0a34 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Sun, 7 Dec 2025 00:48:29 -0600 Subject: [PATCH] CLAUDE: Add Tdarr ubuntu-manticore setup guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- tdarr/ubuntu-manticore-setup.md | 162 ++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 tdarr/ubuntu-manticore-setup.md diff --git a/tdarr/ubuntu-manticore-setup.md b/tdarr/ubuntu-manticore-setup.md new file mode 100644 index 0000000..82217fa --- /dev/null +++ b/tdarr/ubuntu-manticore-setup.md @@ -0,0 +1,162 @@ +# 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` + +```yaml +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_bframes` to `false` +- 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 +```bash +# 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 +```bash +# 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: +```bash +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`