Files
obsidian-vault/wiki/tech/arr-stack-kraken.md
T

154 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "*arr Stack на Кракене — Pitfalls & Config"
namespace: work
type: reference
tags:
- kraken
- radarr
- sonarr
- prowlarr
- arr
- pitfalls
created: '2026-05-19'
updated: '2026-05-20'
last_synced: '2026-05-20'
confidence: 0.9
---
# *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$` который перехватывает все 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 <svc> 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]] — инфра Кракена