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

5.9 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 (end-of-session): Стек ПОДНЯТ И РАБОТАЕТ . docker compose up -d в /mnt/RED_2TB/docker/arr создал и запустил prowlarr, radarr, sonarr, jellyfin (все в проекте arr, процессы под uid 950 — PUID/PGID=950 применён). Сеть media_net воссоздана (docker network create media_net), transmission подключён к media_net. Персистентность сетей: в docker/transmission/docker-compose.yml добавлена networks секция media_net + transmission_default (external) — transmission сам находится в обеих сетях при любом пересоздании.

Два пост-запуска блокатора — ОБА РЕШЕНЫ (2026-09-02 конец):

  1. Jellyfin не проигрывал (FFmpeg 243) — переход решён двумя фиксами: (а) chown -R 950:950 /mnt/RED_2TB/docker/arr/jellyfin (конфиг вглубь был 911:911) открыл UI; (б) главный скрытый корень — корень /mnt/RED_2TB/storage остался 921:921, ACL everyone@ EXECUTE=False → uid 950 не мог traverse в /storage/Movies/.... Фикс (root): chown 950:950 /mnt/RED_2TB/storage && chmod 750 /mnt/RED_2TB/storage. После этого jellyfin проигрывает. Транскодинг откл.: Dashboard→Playback→убрать «Allow …transcoding».
  2. Transmission 255 торрентов "no data found" — downloadDir УЖЕ корректно указывал на /storage/Movies, файлы были и читались под 950; ошибка была закеширована от старта при блокированном traverse. Фикс (НЕ root): docker restart transmission254/255 чисты сразу. Остался торрент #1 — Verify в UI.

Почему стек изначально не запускался — медиа-права были сломаны (тот же 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---; контейнеры 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. All containers now exist and run under uid 950. Was: transmission container existed (now running as uid 950); jellyfin/radarr/sonarr/prowlarr containers were NOT yet created — now they are (PUID/PGID=950). 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). Arr stack is UP (2026-09-02 end): cd /mnt/RED_2TB/docker/arr && docker compose up -d created/started prowlarr/radarr/sonarr/jellyfin. All daemons under uid 950. jellyfin reads /storage/Movies; radarr↔transmission via media_net (transmission:9091) OK; caddy resolves transmission via transmission_default (Web UI). UI ports: prowlarr 9696, radarr 7878, sonarr 8989, jellyfin 8096, transmission 9091. 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.)