[2026-05-22] taiga sync: .obsidian/community-plugins.json .obsidian/graph.json .obsidian/hotkeys.json .obsidian/plugins/obsidian-git/data.json .obsidian/plugins/obsidian-git/main.js

This commit is contained in:
Тайга
2026-05-22 13:00:45 +00:00
parent 4934fb8249
commit 08142fc8a5
273 changed files with 3814 additions and 12480 deletions
-132
View File
@@ -1,132 +0,0 @@
---
title: Kraken Media Server — Full Stack
namespace: work
created: '2026-05-18'
updated: '2026-05-20'
last_synced: '2026-05-20'
type: concept
tags:
- kraken
- media-pipeline
- infra
- synthesis
confidence: 0.9
---
# Kraken Media Server — Full Stack
Синтез: полная карта медиа-стека на Кракене (RPi5). Объединяет [[tech/kraken-network]], [[tech/media-pipeline-pitfalls]], [[tech/htpc-steam-emulators]].
## Архитектурный обзор
Два параллельных конвейера для медиа-контента:
### Конвейер 1 — media-pipeline (Swift, ручной импорт HTPC→Kraken)
```
HTPC (rsync) → /media/{movies,cartoons,series,documentaries}/
→ media-pipeline:kraken (Docker) → scan → resolve → apply
→ /media/library/{movies,cartoons,series}/ (canonical + NFO)
→ Jellyfin
```
- Resolve: TMDb (Tier 1) → KP (Tier 2) → IMDb scrape (Tier 3) → web search (Tier 4)
- Классификация по жанрам провайдера (Animation→cartoons, Documentary→documentaries), никогда по пути
- `unresolved.json` — очередь нераспознанных (13 items на 2026-05-16, все genuine absences)
### Конвейер 2 — *arr stack (новые скачки через Radarr/Sonarr)
```
Prowlarr (RuTracker) → Radarr (7878) / Sonarr (8989)
→ Transmission (9091) → /media/movies-radarr, /media/series-sonarr
→ Jellyfin
```
- Раздельные root folder'ы (`movies-radarr`, `series-sonarr`) — не конфликтуют с media-pipeline library
- Jellyfin читает оба пути для Movies и Series
## Сервисы и порты
| Сервис | Порт | Данные |
|--------|------|--------|
| Jellyfin | 8096 | `/media/library/` + `/media/movies-radarr` + `/media/series-sonarr` |
| Transmission | 9091 | `/media/downloads/complete` |
| Radarr | 7878 | root: `/media/movies-radarr` |
| Sonarr | 8989 | root: `/media/series-sonarr` |
| Prowlarr | 9696 | индексер: RuTracker |
| media-pipeline | — | Docker run, не compose; config: `~/docker/media-pipeline/` |
| Hermes (Kraken) | — | Docker container, skills: `~/.hermes/skills/` |
## Ключевые питфоллы (пережитые)
1. **HDD read-only под нагрузкой** — rsync + ffmpeg transcode одновременно → Sense Key 0x4, ext4 remount-ro. Фикс: ребут → fsck → `docker compose up -d` (2026-05-18)
2. **`docker save | ssh` зависает** — через WireGuard tunnel. Фикс: `docker save -o /tmp/` + `scp` + `docker load` раздельно
3. **curl отсутствует в Hermes-контейнере** — скиллы с curl-командами не работают из контейнера. Навигация: хостовый Hermes vs container Hermes
4. **Pi-hole DNS hijack** → Sonarr/Radarr 503. Фикс: whitelist или прямые IP
5. **Skills path**: `~/.hermes/skills/` (хост) ≠ `/opt/data/skills/` (контейнер)
6. **KP API domain** переехал на `api.poiskkino.dev` (был `api.kinopoisk.dev`)
7. **providers block в config.json** — если не указан явно, все провайдеры disabled → 213 skipped вместо 278 applied
## Статус (2026-05-18)
- ✅ media-pipeline: 402/402 тестов, 13 unresolved (genuine absences в KP/TMDb)
- ✅ *arr stack: Prowlarr+Radarr+Sonarr+Transmission+Jellyfin — работают
- ✅ Hermes на Кракене: docker container, скиллы `download-media` + `arr-media-stack-setup`
- ⏳ Трекер-парсеры (Steps D-F): audio/non-video scanner, fixture тесты для rutor/nnm-club
- ⏳ Transmission torrent-fix: 271/293 файлов без привязки после pipeline apply
## Watchlist Automation (обновлено 2026-05-20)
Два cron-job'а на Eagle — автоматическое пополнение очереди просмотра:
| Job | Расписание | Действие |
|-----|----------|---------|
| `watchlist-resolve` (`16438138c8c5`) | ежедн. 09:00 | SSH на Кракен → `watchlist-sync resolve` → commit |
| `watchlist-sync-down` (`7d12b6d48786`) | ежедн. 10:00 | `process-thumbs --apply``sync-down --apply` → добавить в Radarr/Sonarr |
| `watchlist-discover` (`6aba6979b8c4`) | вс 09:00 | KP API топ новинок → добавить в секцию "Новинки 👍/👎" |
Python-сервис `~/Developer/watchlist-sync`:
- **parse** → `[ ]`/`[x]`/`👍`/`👎` статусы из .md
- **resolve** → TMDB + KP API → ID + тип (movie/tv)
- **discover** → KP API топ фильмов 2024-2025 (IMDb≥7.0 или KP≥7.0) → секция "Новинки"
- **sync-down** → добавить `👍` в Radarr/Sonarr батчами по 5
- **sync-up** → Jellyfin watched history → `[x]` в .md
## Router Script — Жанровая маршрутизация
`router.py` — запускается из Sonarr/Radarr Custom Script при импорте. Читает жанры из NFO (или TMDb API) и создаёт symlink в нужную тематическую библиотеку Jellyfin:
```
movies-radarr/ → Animation + !R/18+ → /media/cartoons/
movies-radarr/ → Documentary → /media/documentaries/
movies-radarr/ → прочее → /media/movies/
series-sonarr/ → аналогично для series/cartoons-series/documentaries-series/
```
Запуск: `python3 /srv/.../docker/media-pipeline/router.py [--apply]`
## Jellyfin библиотеки (актуально 2026-05-20)
| Библиотека | Тип | Пути |
|---|---|---|
| Movies | movies | `/media/movies` |
| Series | tvshows | `/media/series` |
| Cartoons | movies | `/media/cartoons` |
| Cartoon Series | tvshows | `/media/cartoons-series` |
| Documentaries | movies | `/media/documentaries` |
| Documentary Series | tvshows | `/media/documentaries-series` |
`movies-radarr` и `series-sonarr` НЕ в библиотеках Jellyfin — router script создаёт symlinks.
Kraken-Hermes в контейнере (`hermes-kraken`) доступен через Zulip. Скачать медиа:
- Сериал → Sonarr API → Transmission
- Фильм → Radarr API → Transmission
- Только через curl (python3 запрещён в скилле)
## See Also
- [[concepts/watchlist-automation]] — полный flow watchlist → Radarr/Sonarr → Jellyfin
- [[tech/arr-stack-kraken]] — *arr stack pitfalls: nginx, DNS, grab limits
- [[tech/jellyfin-transcode-rpi5]] — Jellyfin PGS/ASS subtitle pitfalls on RPi5
- [[tech/hermes-docker-kraken]] — Hermes Docker на Кракене