Files
obsidian-vault/personal/tech/skill-arr-media-stack-setup-additions.md
T
Taiga b53dd70a15 [2026-09-26 09:10:28] syncthing: personal/tech/archive-org-collection-harvest.md personal/tech/balda-go-fx-pitfalls.md personal/tech/bilety-oxota-interaktiv.md personal/tech/cloudflare-tunnel-ssh-published-route.md personal/tech/deepseek-language-drift.md personal/tech/docker-data-root-mount-race.md personal/tech/docker-mac-disk-issues.md personal/tech/docker_colima_setup.md personal/tech/eagle-dashboard-launchd.md personal/tech/hermes-agent-improvements.md personal/tech/hermes-browser-toolsets.md personal/tech/hermes-fork-vs-upstream.md personal/tech/hermes-git-repo.md personal/tech/hermes-memory-architecture.md personal/tech/hermes-secret-redaction-bypass.md personal/tech/hermes-self-improvement-review.md personal/tech/home-network-config.md personal/tech/inter-site-throughput-taiga-to-mac.md personal/tech/inter-site-throughput-taiga-to-mac.md.bak-nedstab2 personal/tech/jellyfin-db-schema-mismatch.md personal/tech/karabiner-keyboard-config.md personal/tech/kraken-media-inventory-facts.md personal/tech/kraken-truenas-media-copies.md personal/tech/lampa-jellyfin-plugin.md personal/tech/lampac-deployment.md personal/tech/lampac-torrserver.md personal/tech/llm-model-selection-2026.md personal/tech/mac-print-shared-services.md personal/tech/modbus-rtu-sniffer-debugging.md personal/tech/multistream-single-flow-limit.md personal/tech/multistream-single-flow-limit.md.bak-nedstab2 personal/tech/music-tags-repair-truenas.md personal/tech/obsidian-mcp-ecosystem.md personal/tech/original-xbox-2025-guide.md personal/tech/prowlarr-flaresolverr-cloudflare.md personal/tech/radarr-sonarr-phantom-records.md personal/tech/roundtrip-key-verification.md personal/tech/ryujinx-mac-setup.md personal/tech/skill-arr-media-stack-setup-additions.md personal/tech/skill-docker-data-root-mount-race.md personal/tech/skill-lampac-kraken-deploy.md personal/tech/tirith-trust.md personal/tech/truenas-local-tree-comparison.md personal/tech/truenas-nfs4-acl-and-arrmultiuser.md personal/tech/truenas-zfs-panic-recovery.md personal/tech/vault-doc-pruning.md personal/tech/vless-space-subscription-egress.md personal/tech/watchlist-sync-feed.md personal/tech/watchtower-docker-updates.md personal/tech/xray-outbound-subscription-3xui.md personal/tech/xray-reverse-limits-private-network.md personal/tech/xray-reverse-tunnel-kraken-truenas.md personal/tech/xray-reverse-tunnel-kraken-truenas.md.bak-nedstab2 personal/tech/yandex-music-api.md
2026-09-26 09:10:28 +00:00

5.2 KiB
Executable File
Raw Blame History

title, created, updated, type, namespace, tags, related
title created updated type namespace tags related
Skill — arr-media-stack-setup (дополнения 2026-09-26) 2026-09-26 2026-09-26 tech personal
skill
arr
prowlarr
dns
truenas
blocked
pitfalls
personal/plans/lidarr-taiga-and-indexer-unblock
family/projects/media-toolbox-taiga

Skill arr-media-stack-setup — дополнения 2026-09-26

Зеркало патча скилла. Что добавлено после разведки на Тайге (задача «Lidarr + музыка + синк с Jellyfin»). Полный скилл: ~/.hermes/hermes-whale/skills/devops/arr-media-stack-setup/SKILL.md

1. Индексеры недоступны: DNS-фильтр провайдера (НЕ Cloudflare, НЕ Pi-hole)

Новый класс проблемы, ранее не описанный в скилле. Задокументированы были только «Cloudflare 403 на indexers.prowlarr.com» и «RuTracker Turnstile». Здесь DNS не отдаёт IP вообще.

# InitialFailure показывает НАЧАЛО проблемы, а не «сейчас»
GET /api/v1/indexerstatus → initialFailure: "2026-05-20T05:4x:xx"  ← день деплоя
                          → disabledTill:    +24 ч карантин

# Резолв проверять ДВУМЯ резолверами
nslookup rutracker.org 192.168.2.2   # роутер
nslookup rutracker.org 8.8.8.8       # внешний
# NXDOMAIN на ОБОИХ  → фильтр на стороне аплинка/провайдера
# NXDOMAIN на роутере → Pi-hole/локальный DNS

Быстрый чек всех индексеров — wget -S на каждый домен из контейнера prowlarr: wget: bad address '<domain>' = DNS-провал, HTTP/1.1 200 OK = домен жив.

Фикс: SOCKS5-прокси, но сперва убедиться, что прокси-контейнер виден целевой сети (docker network inspect media_net --format '{{range .Containers}}{{.Name}} {{end}}'). После docker network connect — добавить сеть в compose, иначе потеряется при пересоздании. Затем POST /api/v1/indexer/testall снимает disabledTill.

2. disabledTill НЕ виден в Radarr/Sonarr

GET /api/v3/indexer отдаёт "status": {} — пусто. Карантин смотреть только в Prowlarr (/api/v1/indexerstatus, /api/v1/health). Не делать вывод «индексеры свободны» по Radarr.

3. TrueNAS: python3 ЕСТЬ, curl и sqlite3 — НЕТ

Исправление распространённой ошибки в доке («нет curl и python3»). Факт 2026-09-26: python3 на хосте работает (использовался для разбора JSON). Нет curl и sqlite3.

Рабочий паттерн API = wget в контейнере + хостовый python3:

ssh truenas_admin@HOST \
  "docker exec prowlarr sh -c 'wget -qO- --header=\"X-Api-Key: <KEY>\" http://localhost:9696/api/v1/health'"
  • busybox-wget: только -qO- / -S / --header / --timeout. -e use_proxy=yes НЕ поддерживается (GNU-опция) → прокси-тест изнутри linuxserver-контейнера этим способом невозможен.
  • Экранирование JSON через ssh ломается на кавычках в --header → надёжнее писать вывод в файл (> /tmp/x.json) и разбирать отдельным вызовом.
  • jq с дефисами: .["download-dir"], не .download-dir.

4. /etc/resolv.conf контейнеров = 127.0.0.11

Docker embedded DNS. В linuxserver-образах нет getent → использовать nslookup/wget.

5. RemotePathMapping: health жалуется при «задокументированном» маппинге

RemotePathMappingCheck  error
  "download client Transmission places downloads in /storage/Downloads/radarr
   but this directory does not appear to exist inside the container"

Проверять фактический download-dir, а не предполагаемый:

docker exec transmission sh -c 'cat /config/settings.json'   # → "download-dir": "/mnt/storage/Downloads"

Если download-dir плоский (без подкаталога категории) — сам маппинг не спасёт: подкаталога нет. Плюс Transmission монтирует /mnt/storage, Radarr — /storage (один хост-путь под двумя именами). Всегда проверять наличие записей в API (GET /api/v3/remotepathmapping), а не то, что записано в доке.

Связанные заметки