Files
obsidian-vault/family/how-to/arr-stack-taiga.md
T

4.2 KiB

title, created, updated, type, namespace, tags, related
title created updated type namespace tags related
Arr Stack — Taiga 2026-05-23 2026-09-02 tech family
arr
taiga
infra
media
pitfalls
tech/arr-stack-kraken

Arr Stack — Taiga

Secondary arr stack on Taiga (TrueNAS), added 2026-05-20.

STATE 2026-09-02: Стек выключен — в docker ps -a нет ни radarr/sonarr/prowlarr/jellyfin контейнеров (стек не пересоздавался). Compose-структура живёт в /mnt/RED_2TB/docker/arr/ (docker-compose.yml + подпапки prowlarr/ radarr/ sonarr/ jellyfin/ media-pipeline/). Работает только transmission (отдельный compose /mnt/RED_2TB/docker/transmission/).

Почему стек изначально не запускался — медиа-права были сломаны (тот же restore-инцидент uid 921/0000): /mnt/RED_2TB/storage/{Movies,Cartoons,Downloads,Music,series,shared} были d---------/drwx------, owner transmission (uid 921). radarr/sonarr монтируют /storage (rw), jellyfin :ro — со сломанными правами не прочитали бы библиотеку. ⚠️ Сейчас (2026-09-02, конец сессии) права медиа ИСПРАВЛЕНЫ до 950:950 drwxrwx--- (см. PROGRESS ниже) — но контейнеры arr/jellyfin всё ещё не созданы/не запущены. Полный контекст: family/documents/vault-sync/2026-09-02-restore-privilege-scope.md.

Docker-image facts (2026-09-02): All 5 media images loaded locally on TrueNAS (docker images): lscr.io/linuxserver/{radarr,sonarr,jellyfin,transmission,prowlarr}:latest. Only transmission container exists (now running as uid 950). jellyfin/radarr/sonarr/prowlarr containers are NOT yet created — their compose services have PUID/PGID=950 ready, but they have not been up'ed yet. Transmission originally ran as ROOT (not 911/950): its compose had no PUID/PGID, so linuxserver /init (s6-overlay) left it root. Fixed 2026-09-02: PUID=950 PGID=950 added and container force-recreated → now daemon under uid 950. It mounts storage/mnt/storage, download-dir = /mnt/storage/Downloads. Fix direction (approved Variant A): set PUID=950 PGID=950 on transmission + all arr/jellyfin compose services so every service shares uid 950 and mutually reads files; then recursively fix perms in depth. Plan + commands: 2026-09-02-restore-privilege-scope.md §5.

PROGRESS 2026-09-02 (updated end-of-session): Both compose files edited for PUID/PGID=950 (transmission at /mnt/RED_2TB/docker/transmission/docker-compose.yml, arr at /mnt/RED_2TB/docker/arr/docker-compose.yml incl. all 4 services). transmission container force-recreated from its proper folder (cd /mnt/RED_2TB/docker/transmission && docker compose up -d --force-recreate) and now runs its daemon as uid 950 (was root) — env PUID=950 PGID=950 confirmed, process under abc/950. Media perms in depth recursively fixed to 950:950 drwxrwx--- on all top storage folders (incl. git/nas 2nd root pass). Git-sync on Mac now RESOLVED — the broken NFS4 DENY READ_DATA ACL on ~1946 loose git objects in obsidian-vault.git was stripped via full dacl replacement (not stripacl), so git push from Mac works again (push a2c7279..2b6c181, ahead=0 behind=0). Details + exact working command in 2026-09-02-restore-privilege-scope.md. Remaining: cd /mnt/RED_2TB/docker/arr && docker compose up -d and verify jellyfin sees libraries (/storage/*). NOTE: radarr/sonarr/jellyfin mount /mnt/RED_2TB/storage as /storage (NOT /media like Kraken) — radarr root-folder on Taiga differs.

Notes from Setup (2026-05-20)

  • Config and pitfalls recorded during initial Taiga arr stack deployment
  • router.py was customized — check /mnt/RED_2TB/docker/arr-taiga/router.py for current state

Key Differences from Kraken Stack

  • Taiga = TrueNAS host (storage-focused)
  • Kraken = Raspberry Pi 5 (playback-focused)
  • Taiga stack handles acquisition; Kraken handles serving to Jellyfin

Pitfalls

(Details were referenced but not captured. Update this page after next Taiga arr maintenance session.)