--- title: "*arr Stack на Кракене — Pitfalls & Config" type: reference tags: - kraken - radarr - sonarr - prowlarr - arr - pitfalls created: '2026-05-19' updated: '2026-05-19' --- # *arr Stack на Кракене — Pitfalls & Config ## Архитектура Prowlarr (9696) → Radarr (7878) + Sonarr (8989) → Transmission (9091) → Jellyfin (8096) ## Web UI (nginx reverse proxy) Все сервисы доступны через nginx на порту 80 (urlBase настроен в каждом сервисе): | Сервис | URL | Прямой порт | |--------|-----|-------------| | Sonarr | http://kraken/sonarr | 8989 | | Radarr | http://kraken/radarr | 7878 | | Prowlarr | http://kraken/prowlarr | 9696 | | Jellyfin | http://kraken/jellyfin | 8096 | | Transmission | http://kraken/transmission | 9091 | Конфиг: `/etc/nginx/openmediavault-webgui.d/media-services.conf` (используем `^~` prefix чтобы перебить OMV regex `.json` location). **⚠️ Pitfall:** OMV имеет regex `location ~* \.json--- title: "*arr Stack на Кракене — Pitfalls & Config" type: reference tags: - kraken - radarr - sonarr - prowlarr - arr - pitfalls created: '2026-05-19' updated: '2026-05-19' --- # *arr Stack на Кракене — Pitfalls & Config который перехватывает все JSON запросы (в т.ч. `/sonarr/initialize.json`). Без `^~` сервисы открываются белым экраном. ## Docker Networks | Сервис | Сети | |--------|------| | Radarr | docker_default | | Sonarr | media_net + docker_default | | Prowlarr | docker_default + media_net | | Transmission | docker_default | | Jellyfin | (отдельно) | Sonarr изначально был только в `media_net` → не видел Transmission → ошибки download client. Добавлен в `docker_default` в `docker-compose.yml`. ## watchlist-sync .env URLs После установки urlBase — API переехало на base path: ``` RADARR_URL=http://localhost:7878/radarr SONARR_URL=http://localhost:8989/sonarr JELLYFIN_URL=http://localhost:8096/jellyfin ``` ## API ключи (prefixes) | Сервис | Prefix | Полный ключ | |--------|--------|-------------| | Radarr | `cbcb8ec3` | в `family/projects/media-toolbox-kraken.md` | | Sonarr | `15fbec32` | в `family/projects/media-toolbox-kraken.md` | | Prowlarr | `134ac38a` | в `family/projects/media-toolbox-kraken.md` | **Получить полный ключ:** ```bash docker exec grep ApiKey /config/config.xml ``` Prefixes в памяти только для идентификации — никогда не хардкодить полные ключи в промптах. ## ⚠️ DNS Pitfall — Pi-hole блокирует skyhook.sonarr.tv **Симптом:** поиск при добавлении сериала/фильма через Sonarr/Radarr не запускается. **Причина:** Pi-hole блокирует `skyhook.sonarr.tv` (и возможно другие *arr endpoints). **Фикс:** прописать явный DNS в `docker-compose.yml` для Sonarr и Radarr: ```yaml dns: - 8.8.8.8 - 8.8.4.4 ``` Применено: 2026-05-18. Файлы: `/srv/.../docker/radarr/docker-compose.yml` и `sonarr/docker-compose.yml`. ## Root folders - Radarr: `/media/movies-radarr` - Sonarr: `/media/series-sonarr` (Router script создаёт symlinks из этих папок в тематические библиотеки Jellyfin.) ## Prowlarr → Sonarr/Radarr sync — правильная настройка **Корень проблемы "неправильный URL":** Prowlarr при sync проставляет в Sonarr/Radarr URL вида `http://prowlarr:9696/N/` вместо `http://prowlarr:9696/prowlarr/N/`. Это происходит если в настройках Application → `prowlarrUrl` не указан urlBase. **Правильное значение** в Prowlarr → Settings → Apps → (Sonarr/Radarr) → Prowlarr URL: ``` http://prowlarr:9696/prowlarr ``` (без trailing slash, с urlBase `/prowlarr`) После изменения — запустить принудительный sync: ```bash curl -X POST "http://localhost:9696/prowlarr/api/v1/command?apikey=KEY" \ -H "Content-Type: application/json" -d '{"name":"ApplicationIndexerSync"}' ``` ## Grab limit 429 — решение через магнет-ссылки NoNaMe Club, RuTracker и другие дают 429 при скачивании torrent-файлов (дневной лимит). **Фикс:** включить `preferMagnetUrl: true` для каждого индексера в Prowlarr → Indexers → (индексер) → Torrent Base Settings → Prefer Magnet URL. Через API: ```bash curl -s "http://localhost:9696/prowlarr/api/v1/indexer/ID?apikey=KEY" | \ jq '(.fields[] | select(.name=="torrentBaseSettings.preferMagnetUrl") | .value) = true' | \ curl -X PUT "http://localhost:9696/prowlarr/api/v1/indexer/ID?apikey=KEY" \ -H "Content-Type: application/json" -d @- ``` Применено для индексеров: RuTracker (1), RuTor (2), Byrutor (3), NoNaMe Club (4). ## Kinozal — лимит на скачивание торрент-файлов Kinozal (стандартный) даёт 429 на скачивание. Решение — **Kinozal (M)** (магнет-версия, definitionFile: `kinozal-magnet`). Добавлен в Prowlarr как отдельный индексер с теми же credentials. Синкается в Sonarr и Radarr через Applications. ## Индексеры — текущий состав (Prowlarr) | ID | Имя | Тип | Примечание | |----|-----|-----|-----------| | 1 | RuTracker | semi-private | блокируется при rate limit на сутки | | 2 | RuTor | public | поиск по imdbid | | 3 | Byrutor | public | | | 4 | NoNaMe Club | semi-private | нет логина, только анонимный | | 5 | Kinozal | semi-private | оставлен, но Kinozal (M) предпочтительнее | | 6 | Kinozal (M) | semi-private | магнет, без grab limit ✅ | ## Sonarr — поиск русских сериалов Sonarr берёт название из TVDB. Для русских сериалов TVDB ставит английский перевод как primary. Prowlarr отправляет оба варианта (через `addrussian` и alternate titles), но это зависит от индексера. **Работающий путь:** Kinozal (M) с `addrussian: true` и `stripcyrillic: false` — находит по русскому названию. Подтверждено: Кибердеревня найдена и скачана. ## Связанные заметки - [[family/projects/media-toolbox-kraken]] — полный статус проекта - [[tech/kraken-network]] — инфра Кракена