4.9 KiB
title, created, updated, last_synced, type, namespace, tags, confidence, sources
| title | created | updated | last_synced | type | namespace | tags | confidence | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| *arr Stack на Тайге — Setup & Config | 2026-05-22 | 2026-05-22 | 2026-05-22 | reference | work |
|
0.9 |
|
*arr Stack на Тайге — Setup & Config
Задеплоен 2026-05-20 на TrueNAS (Taiga). Аналог tech/arr-stack-kraken, но c Caddy вместо nginx и иными путями.
Архитектура
Prowlarr (9696) → Radarr (7878) + Sonarr (8989) → Transmission (9091) → Jellyfin (8096)
router.py создаёт симлинки: staging → категоризированные библиотеки
Compose-файл: /mnt/RED_2TB/docker/arr/docker-compose.yml
Конфиги: /mnt/RED_2TB/docker/arr/{prowlarr,radarr,sonarr,jellyfin}/
PUID/PGID: 921/921 (user transmission)
Web UI (Caddy + HTTPS)
| Сервис | URL |
|---|---|
| Radarr | https://radarr.mallexxx.duckdns.org |
| Sonarr | https://sonarr.mallexxx.duckdns.org |
| Prowlarr | https://prowlarr.mallexxx.duckdns.org |
| Jellyfin | https://jellyfin.mallexxx.duckdns.org |
| Transmission | https://transmission.mallexxx.duckdns.org |
Caddy: subdomain-based routing, Let's Encrypt автоматически.
Хранилище
/mnt/RED_2TB/storage/ → в контейнерах /storage/
| Папка | Назначение | Jellyfin |
|---|---|---|
radarr/ |
Radarr root (staging) | ❌ |
sonarr/ |
Sonarr root (staging) | ❌ |
Movies/ |
Фильмы (симлинки + старый контент) | ✅ Movies |
Cartoons/ |
Мультики | ✅ Cartoons |
series/ |
Сериалы | ✅ Series |
cartoons-series/ |
Мультсериалы | ✅ Cartoon Series |
documentaries/ |
Документалки | ✅ Documentaries |
documentaries-series/ |
Документальные сериалы | ✅ Documentary Series |
Downloads/ |
Торренты (Transmission) | ❌ |
Remote Path Mapping (Radarr + Sonarr)
Transmission: /mnt/storage/Downloads/ → /mnt/storage/
Radarr/Sonarr: /storage/
Маппинг в каждом arr:
- host:
transmission, remotePath:/mnt/storage/Downloads/, localPath:/storage/Downloads/
Prowlarr — прокси для заблокированных индексеров
vless-proxy в media_net как vless-proxy:1080 (SOCKS5). Настройка: Settings → Indexers → Add Proxy → SOCKS5.
Индексеры: RuTracker (через прокси), RuTor, Byrutor (enableRss: false), NoNaMe Club, Kinozal, Kinozal (M) — preferMagnetUrl: true для всех.
router.py
/mnt/RED_2TB/docker/arr/media-pipeline/router.py
# Dry-run, затем apply:
ssh truenas_admin@mallexxx.duckdns.org "python3 /mnt/RED_2TB/docker/arr/media-pipeline/router.py"
ssh truenas_admin@mallexxx.duckdns.org "python3 /mnt/RED_2TB/docker/arr/media-pipeline/router.py --apply"
Отличия от Кракена
| Kraken | Taiga | |
|---|---|---|
| Reverse proxy | nginx path-based (/sonarr) |
Caddy subdomain-based |
| HTTPS | нет | автоматически (Let's Encrypt) |
| PUID/PGID | 1000/1000 | 921/921 (transmission) |
| Staging папки | movies-radarr/, series-sonarr/ |
radarr/, sonarr/ |
| Прокси для индексеров | нет | vless-proxy SOCKS5 |
| Jellyfin users | alex + lisa | только alex |
| PGS→SRT | pgsrip + cron | TBD |
Питфоллы (при деплое)
d---------в ls — норма для NFSv4 ACL на TrueNAS. Реальные права черезmidclt call filesystem.getacl- После alpine
chownNFSv4 ACE слетают → повторно применять черезmidclt filesystem.setacl indexers.prowlarr.comотдаёт 403 с IP Тайги → Prowlarr не может скачать Cardigann definitions. Решение: скопировать/config/Definitions/с Кракена (549 yml-файлов)- POST /indexer зависает при добавлении Cardigann через API → import через SQLite напрямую с Кракена
- Jellyfin 10.11:
nameв POST/Library/VirtualFolders— в query string (?name=Movies), не в body - Transmission whitelist через env var
WHITELISTв compose (settings.json перезаписывается при старте) - На Тайге нет
curlиpython3в PATH хоста — только внутри контейнеров. Скрипты черезdocker execили scp
Связанные страницы
- tech/arr-stack-kraken — *arr stack на Кракене (для сравнения)
- concepts/kraken-media-stack — полная архитектура медиастека
- tech/kraken-network — сетевая топология