diff --git a/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md b/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md new file mode 100644 index 00000000..c95234f2 --- /dev/null +++ b/personal/projects/personal-os/wiki-curation-runs/2026-05-20.md @@ -0,0 +1,69 @@ +--- +date: 2026-05-20 +status: complete +--- +# Wiki Curation — 2026-05-20 + +## Done + +- **Conflict scan:** No git conflict markers found across ~/obsidian/ ✅ +- **Previous run (2026-05-19):** Status = complete, no Unfinished — nothing to resume +- **Orientation:** Read SCHEMA.md (21 pages in table), index.md (27 pages), log.md (last 50 lines) +- **Change detection since 2026-05-19 02:00:** + - `wiki/tech/arr-stack-kraken.md` — NEW page with **frontmatter corruption** (duplicate block embedded in body from likely Obsidian sync collision) → fixed ✅ + - `wiki/tech/htpc-kodi-layout.md` — NEW page missing namespace/dates → fixed ✅ + - `family/how-to/switch-emulation-rom-infra.md` — Ryujinx 1.3.3 setup, qBittorrent 5.2.0, Jackett Docker config, ROM flow research → crystallized to `tech/htpc-steam-emulators.md` + - `family/projects/watchlist-discover.md` — NEW: discover cron details, filter thresholds, KP API endpoint → incorporated into `kraken-media-stack` + synthesis page + - `family/projects/media-toolbox-kraken.md` — router.py details, Jellyfin library structure (2026-05-18 session 16) → updated `kraken-media-stack` + - `personal/projects/psychologist-app/` — product/marketing work: not wiki domain, skipped + - `personal/psychology/` — personal content: not wiki domain +- **Inbox:** `raw/inbox/` empty ✅ +- **Sessions (2026-05-20):** 6 sessions checked. 2 wiki-relevant (watchlist-discover creation, scheduled flow discussion). Knowledge crystallized from family/ files; session content itself is operational/personal +- **Corruption fix:** `tech/arr-stack-kraken.md` — duplicate frontmatter embedded mid-body (`.json---\ntitle:...---`). Synthesized correct Pitfall text (OMV `.json$` regex), removed corruption, added namespace/confidence fields +- **Pages created (1):** + - `wiki/concepts/watchlist-automation.md` — synthesis: full watchlist→Jellyfin automation flow (discover→thumbs→sync-down→*arr→router→Jellyfin); covers cron IDs, indexer config, router logic, open tasks +- **Pages updated (11):** + - `tech/htpc-steam-emulators.md` — major expansion: Ryujinx Switch section, prod.keys sources, DKC compatibility, qBittorrent API, Jackett Docker + ROM search flow; added See Also with 3 wikilinks + - `tech/arr-stack-kraken.md` — corruption fixed; namespace/confidence frontmatter added + - `tech/htpc-kodi-layout.md` — namespace/dates/confidence frontmatter added + - `tech/media-pipeline-pitfalls.md` — namespace frontmatter added + - `tech/kraken-network.md` — namespace frontmatter added + - `tech/vault-namespace.md` — namespace frontmatter added + - `concepts/kraken-media-stack.md` — Watchlist Automation section updated (discover cron, cron IDs); added Router Script section + Jellyfin library table (2026-05-20); added See Also with 4 wikilinks + - `concepts/vault-strategy.md` — added 2 See Also wikilinks (knowledge-lifecycle, vault-namespace) + - `entities/library-app.md` — added truenas-inpxer wikilink in See Also + - `personal-os-architecture.md` — added See Also section (executor-orchestrator, user-profile, kraken-media-stack, agent-rules) + - `wiki/index.md` — added 4 new entries (arr-stack-kraken, htpc-kodi-layout, watchlist-automation, updated htpc-steam-emulators summary); bumped to 31 pages, 2026-05-20 +- **Synthesis task:** `concepts/watchlist-automation.md` — synthesizes 4+ co-occurring pages (arr-stack-kraken, kraken-media-stack, hermes-docker-kraken, watchlist-discover) +- **Orphan fixes (5 resolved):** + - `executor-orchestrator` ← personal-os-architecture See Also + - `watchlist-automation` ← kraken-media-stack See Also + - `knowledge-lifecycle` ← vault-strategy See Also + - `truenas-inpxer` ← library-app See Also + - `vault-namespace` ← vault-strategy See Also +- **Remaining orphan:** `user-profile` — linked from personal-os-architecture now, may still show as orphan depending on link scan direction; low priority +- **Lint (31 pages):** 5 missing namespace fields fixed; 5 orphans resolved via new inbound links; no broken wikilinks; no pages over 200 lines; no log rotation needed + +## Validation fixes + +- none (all 12 modified files passed clean on final check) + +## Unresolved conflicts + +(none) + +## Unfinished + +(none) + +## Stats + +- Conflicts resolved: 0 (no git conflicts found) +- Corruption fixes: 1 (arr-stack-kraken duplicate frontmatter) +- Inbox processed: 0 (empty) +- Sessions crystallized: 0 / 6 checked (knowledge from family/ files, not session text) +- Synthesis pages created: 1 (concepts/watchlist-automation) +- Pages created: 1 (watchlist-automation) +- Pages updated: 11 (htpc-steam-emulators, arr-stack-kraken, htpc-kodi-layout, media-pipeline-pitfalls, kraken-network, vault-namespace, kraken-media-stack, vault-strategy, library-app, personal-os-architecture, index) +- Lint issues: 5 namespace fields + 5 orphans = 10 fixed, 1 orphan remaining (user-profile — low priority) +- Validation issues fixed: 0 diff --git a/wiki/concepts/kraken-media-stack.md b/wiki/concepts/kraken-media-stack.md index c5f85886..484dc308 100644 --- a/wiki/concepts/kraken-media-stack.md +++ b/wiki/concepts/kraken-media-stack.md @@ -1,14 +1,16 @@ --- title: Kraken Media Server — Full Stack +namespace: work created: '2026-05-18' -updated: '2026-05-19' +updated: '2026-05-20' +last_synced: '2026-05-20' type: concept tags: - kraken - media-pipeline - infra - synthesis -confidence: high +confidence: 0.9 --- # Kraken Media Server — Full Stack @@ -72,20 +74,59 @@ Prowlarr (RuTracker) → Radarr (7878) / Sonarr (8989) - ⏳ Трекер-парсеры (Steps D-F): audio/non-video scanner, fixture тесты для rutor/nnm-club - ⏳ Transmission torrent-fix: 271/293 файлов без привязки после pipeline apply -## Watchlist Sync (в разработке, 2026-05-19) +## Watchlist Automation (обновлено 2026-05-20) -Python-сервис `~/Developer/watchlist-sync` для автоматической синхронизации `family/documents/movies-watchlist.md` с Radarr/Sonarr/Jellyfin: -- **parse** → `[ ]`/`[x]`/`❓`/`⬇️` статусы из .md +Два 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) -- **sync-down** → добавить в Radarr/Sonarr батчами по 5 +- **discover** → KP API топ фильмов 2024-2025 (IMDb≥7.0 или KP≥7.0) → секция "Новинки" +- **sync-down** → добавить `👍` в Radarr/Sonarr батчами по 5 - **sync-up** → Jellyfin watched history → `[x]` в .md -- **AI curation** → Hermes Kraken cron, disambiguation ❓ → Zulip `#personal::Kraken torrents` -Stage 2 (после 50+ просмотров): персонализированные рекомендации по профилю (3 списка: вдвоём / один / семейное). +## 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 на Кракене diff --git a/wiki/concepts/vault-strategy.md b/wiki/concepts/vault-strategy.md index fa6c69d9..53a62992 100644 --- a/wiki/concepts/vault-strategy.md +++ b/wiki/concepts/vault-strategy.md @@ -57,3 +57,5 @@ sources: - [[wiki-ingest-process]] — как wiki-curation работает - [[personal-os-architecture]] — полная картина системы - [[concepts/agent-memory-architecture]] — память агента (семантический уровень) +- [[concepts/knowledge-lifecycle]] — как знания кристаллизируются из сессий в wiki +- [[tech/vault-namespace]] — правила namespace: work/personal/family diff --git a/wiki/concepts/watchlist-automation.md b/wiki/concepts/watchlist-automation.md new file mode 100644 index 00000000..5b7d65b2 --- /dev/null +++ b/wiki/concepts/watchlist-automation.md @@ -0,0 +1,105 @@ +--- +title: Watchlist Automation — Полный Flow +namespace: personal +created: '2026-05-20' +updated: '2026-05-20' +last_synced: '2026-05-20' +type: concept +tags: + - kraken + - watchlist + - automation + - synthesis +confidence: 0.9 +--- +# Watchlist Automation — Полный Flow + +Синтез: как `family/documents/movies-watchlist.md` превращается в скачанный контент. Объединяет [[tech/arr-stack-kraken]], [[concepts/kraken-media-stack]], [[tech/hermes-docker-kraken]]. + +## Полная цепочка + +``` +[вс 09:00] watchlist-discover ← KP API топ фильмов 2024-2025 + ↓ добавляет в секцию "Новинки 👍/👎" + movies-watchlist.md + Alex ставит 👍 / 👎 + ↓ +[ежедн 09:00] watchlist-resolve ← SSH Кракен → resolve → commit +[ежедн 10:00] watchlist-sync-down + → process-thumbs (перемещает 👍 → начало списка) + → sync-down (добавляет батч в Radarr/Sonarr) + ↓ +Radarr (7878) / Sonarr (8989) + → Prowlarr (9696) → RuTracker / Kinozal(M) / NoNaMe / etc. + → Transmission (9091) + → /media/movies-radarr или /media/series-sonarr + ↓ +router.py (Custom Script) → читает жанры из NFO/TMDb + → symlink в /media/{movies,cartoons,documentaries,...}/ + ↓ +Jellyfin (8096) → rescan → виден контент +``` + +## Статусы в movies-watchlist.md + +| Символ | Значение | Действие | +|--------|---------|---------| +| `[ ]` | не смотрел, в очереди | sync-down добавляет в Radarr/Sonarr | +| `[x]` | просмотрено | sync-up из Jellyfin watched history | +| `👍` | нравится (новинка) | process-thumbs переносит в начало → попадёт в sync-down | +| `👎` | не хочу (новинка) | process-thumbs перемещает в "Новинки 👎" | +| `🗓️` | upcoming (ещё не вышел) | discover помечает, не скачивается | + +## Cron Jobs на Eagle + +| Job | ID | Расписание | +|-----|-----|-----------| +| `watchlist-discover` | `6aba6979b8c4` | вс 09:00 | +| `watchlist-resolve` | `16438138c8c5` | ежедн. 09:00 | +| `watchlist-sync-down` | `7d12b6d48786` | ежедн. 10:00 | + +## Discover — Фильтрация + +| Тип | Порог | +|-----|-------| +| Мировые | IMDb ≥ 7.0 или KP ≥ 7.0 | +| Российские | KP ≥ 8.5 (защита от накрутки) | +| Upcoming | год ≥ текущий−1 | +| Минимум голосов | IMDb ≥ 1000 или KP ≥ 500 | + +KP API endpoint: `https://api.poiskkino.dev/v1.4/movie` (redirect с api.kinopoisk.dev). + +## *arr Stack — Индексеры (Prowlarr) + +| ID | Имя | Тип | Примечание | +|----|-----|-----|-----------| +| 1 | RuTracker | semi-private | блокирует при rate limit на сутки | +| 2 | RuTor | public | поиск по imdbid | +| 3 | Byrutor | public | | +| 4 | NoNaMe Club | semi-private | анонимный | +| 5 | Kinozal | semi-private | резерв | +| 6 | Kinozal (M) | semi-private | магнет ✅ — без grab limit, **предпочтительный** | + +**Pi-hole pitfall:** блокирует `skyhook.sonarr.tv` → Sonarr/Radarr поиск молча не запускается. Фикс: `dns: [8.8.8.8]` в docker-compose.yml. + +## Router Script — Маршрутизация по жанру + +После импорта Sonarr/Radarr: `router.py --apply` создаёт symlinks: +- Animation (не R/18+) → `/media/cartoons/` или `/media/cartoons-series/` +- Documentary → `/media/documentaries/` или `/media/documentaries-series/` +- Прочее → `/media/movies/` или `/media/series/` + +Kopirует NFO + постер рядом с symlink (Jellyfin не видит метадату через symlink напрямую). + +## Open Tasks (2026-05-20) + +- 🟡 Передавать Transmission locations через router script при каждом импорте (сейчас вручную) +- 🔴 rsync невыполненных фильмов с HTPC на Кракен (`Фильмы не перенесенные с htpc на кракен.md`) +- 🟡 Watchlist sync-up: добавить перенесённые фильмы в нужные разделы + +## See Also + +- [[tech/arr-stack-kraken]] — детальные питфоллы *arr стека +- [[concepts/kraken-media-stack]] — полная архитектура медиасервера +- [[tech/hermes-docker-kraken]] — Hermes на Кракене +- [[tech/jellyfin-transcode-rpi5]] — Jellyfin PGS/ASS питфоллы diff --git a/wiki/entities/library-app.md b/wiki/entities/library-app.md index 546aa577..cea57185 100644 --- a/wiki/entities/library-app.md +++ b/wiki/entities/library-app.md @@ -67,3 +67,4 @@ sources: - [[personal-os-architecture]] — Taiga как хост, TrueNAS infrastructure - [[personal-os-schema]] — паттерны хранения данных в personal-os +- [[tech/truenas-inpxer]] — TrueNAS inpxer: пути, Badger DB lock питфол diff --git a/wiki/index.md b/wiki/index.md index 53525c85..201b56af 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -9,7 +9,7 @@ updated: '2026-05-16' # Wiki Index Auto-maintained catalog of all pages in `wiki/`. Updated by the daily curation cron. -> Last updated: 2026-05-19 | Total pages: 27 +> Last updated: 2026-05-20 | Total pages: 31 ## Core Architecture @@ -37,6 +37,7 @@ Auto-maintained catalog of all pages in `wiki/`. Updated by the daily curation c - [[concepts/kraken-media-stack]] — Full Kraken media server: media-pipeline (Swift) + *arr stack + Jellyfin + watchlist-sync; pitfalls synthesis - [[concepts/executor-orchestrator]] — Executor-as-worker pattern: Eagle spawns Executor as separate Hermes profile; auto-approval rules; GTD orchestration idea - [[concepts/knowledge-lifecycle]] — How knowledge moves from session to permanent memory: barriers, tools, degradation risks +- [[concepts/watchlist-automation]] — Full watchlist automation flow: discover → watchlist.md → Radarr/Sonarr → router.py → Jellyfin ## Entities @@ -47,10 +48,12 @@ Auto-maintained catalog of all pages in `wiki/`. Updated by the daily curation c - [[tech/media-pipeline-pitfalls]] — Swift media-pipeline: §9.x score engine, transliteration, KP rate limit, Docker run pattern - [[tech/vault-namespace]] — Vault namespace rules: work/personal/family separation, write permissions, agent access - [[tech/kraken-network]] — Kraken network topology, WireGuard, media volume mount paths, *arr stack, HDD error recovery -- [[tech/htpc-steam-emulators]] — HTPC Steam/emulator rules, gamepad config, save paths +- [[tech/htpc-steam-emulators]] — HTPC Steam/emulator rules, Ryujinx Switch setup, qBittorrent API, Jackett ROM search, gamepad config +- [[tech/htpc-kodi-layout]] — HTPC Kodi NFO structure, symlinks, media layout, Wake-on-LAN - [[tech/hermes-docker-kraken]] — Hermes Docker on Kraken: docker run rules, HERMES_SKIP_CHOWN, pitfalls - [[tech/jellyfin-transcode-rpi5]] — Jellyfin PGS/ASS subtitle transcoding pitfalls on RPi5; pgsrip conversion; Transmission hook - [[tech/truenas-inpxer]] — TrueNAS inpxer book library: paths, Badger DB lock pitfall +- [[tech/arr-stack-kraken]] — *arr stack on Kraken: Prowlarr/Radarr/Sonarr nginx pitfalls, DNS, grab limits, indexer config ## Workflows diff --git a/wiki/log.md b/wiki/log.md index facf9da6..c89f7a87 100644 --- a/wiki/log.md +++ b/wiki/log.md @@ -171,3 +171,43 @@ Activity log for the daily Eagle wiki-curation cron job. - **Wikilinks added:** all 3 new tech pages now have 2+ outbound wikilinks ✅ - **Lint:** 27 pages scanned; frontmatter ✅; wikilinks ✅; orphans: none ✅; sizes: all <200 lines ✅ - **Validation:** 7 files checked — all OK ✅ + + +## [2026-05-20] wiki-curation | 1 corruption fixed, 1 page created, 8 pages updated, 5 orphans fixed + +- **Conflict scan:** No git conflict markers found across ~/obsidian/ ✅ +- **Previous run (2026-05-19 02:00):** Status = complete, no Unfinished — nothing to resume +- **Change detection:** + - `wiki/tech/arr-stack-kraken.md` — NEW (2026-05-19): *arr stack pitfalls; had frontmatter corruption (embedded frontmatter in body) → fixed ✅ + - `wiki/tech/htpc-kodi-layout.md` — NEW (2026-05-19): Kodi NFO layout; missing namespace/dates → fixed ✅ + - `family/how-to/switch-emulation-rom-infra.md` — Ryujinx, qBittorrent, Jackett research → crystallized to htpc-steam-emulators.md ✅ + - `family/projects/watchlist-discover.md` — NEW: discover cron details → incorporated into kraken-media-stack + watchlist-automation synthesis + - `family/projects/media-toolbox-kraken.md` — router script, Jellyfin library structure (2026-05-18 update) → updated kraken-media-stack ✅ + - `personal/projects/psychologist-app/` — psychologist app (not wiki domain, skipped) + - `personal/psychology/` — personal, not wiki domain +- **Inbox:** raw/inbox/ empty ✅ +- **Sessions crystallized (2026-05-20):** 6 sessions checked; 2 relevant (watchlist-discover creation, watchlist flow). Knowledge crystallized via family/ file changes instead. Psychologist/personal sessions: not wiki domain. +- **Corruption fix:** `tech/arr-stack-kraken.md` — duplicate frontmatter block embedded in body (Obsidian save collision). Synthesized correct content, removed corruption. +- **Pages created (1):** `concepts/watchlist-automation.md` — synthesis of watchlist flow across 4+ pages (discover → watchlist.md → *arr → router → Jellyfin) +- **Pages updated (8):** + - `tech/htpc-steam-emulators.md` — added Ryujinx Switch section, qBittorrent API, Jackett setup, ROM flow (from family/how-to/switch-emulation-rom-infra.md) + - `tech/arr-stack-kraken.md` — corruption fixed; added namespace/confidence frontmatter + - `tech/htpc-kodi-layout.md` — added namespace/dates frontmatter + - `tech/media-pipeline-pitfalls.md` — added namespace frontmatter + - `tech/kraken-network.md` — added namespace frontmatter + - `tech/vault-namespace.md` — added namespace frontmatter + - `concepts/kraken-media-stack.md` — updated Watchlist Automation section (discover cron, process-thumbs); added Router Script + Jellyfin library table (2026-05-20 state); added See Also wikilinks + - `concepts/vault-strategy.md` — added 2 wikilinks (knowledge-lifecycle, vault-namespace) + - `entities/library-app.md` — added truenas-inpxer wikilink + - `personal-os-architecture.md` — added See Also section with executor-orchestrator, user-profile links + - `wiki/index.md` — added 4 new pages (arr-stack-kraken, htpc-kodi-layout, watchlist-automation; updated htpc-steam-emulators summary); bumped to 31 pages, 2026-05-20 +- **Orphan fixes (5 resolved via new inbound links):** + - executor-orchestrator ← personal-os-architecture (See Also) + - watchlist-automation ← kraken-media-stack (See Also) + - knowledge-lifecycle ← vault-strategy (See Also) + - truenas-inpxer ← library-app (See Also) + - vault-namespace ← vault-strategy (See Also) + - user-profile ← personal-os-architecture (See Also) [remaining: still orphan — needs inbound from user-profile-specific pages] +- **Synthesis:** `concepts/watchlist-automation.md` — synthesizes arr-stack-kraken + kraken-media-stack + hermes-docker-kraken + watchlist-discover +- **Lint:** 31 pages; namespace fixes (5 pages); orphan links added; no broken wikilinks; no pages over 200 lines +- **Validation:** 12 files checked — all OK ✅ diff --git a/wiki/personal-os-architecture.md b/wiki/personal-os-architecture.md index 17ece433..67899fd1 100644 --- a/wiki/personal-os-architecture.md +++ b/wiki/personal-os-architecture.md @@ -183,3 +183,10 @@ Media stack on Kraken: full *arr stack (Prowlarr/Radarr/Sonarr) + Transmission + │ └── apple-browsers/ ← .cursor/rules copies (.md) + vm-ui-testing.md └── personal/ family/ ``` + +## See Also + +- [[concepts/executor-orchestrator]] — Executor as separate Hermes profile: auto-approval rules, GTD orchestration +- [[user-profile]] — Alex's profile and goals +- [[concepts/kraken-media-stack]] — Kraken full media stack +- [[personal-os-agent-rules]] — Agent behavior rules diff --git a/wiki/tech/arr-stack-kraken.md b/wiki/tech/arr-stack-kraken.md index 729befe8..10706572 100644 --- a/wiki/tech/arr-stack-kraken.md +++ b/wiki/tech/arr-stack-kraken.md @@ -1,5 +1,6 @@ --- title: "*arr Stack на Кракене — Pitfalls & Config" +namespace: work type: reference tags: - kraken @@ -9,7 +10,9 @@ tags: - arr - pitfalls created: '2026-05-19' -updated: '2026-05-19' +updated: '2026-05-20' +last_synced: '2026-05-20' +confidence: 0.9 --- # *arr Stack на Кракене — Pitfalls & Config @@ -31,22 +34,7 @@ Prowlarr (9696) → Radarr (7878) + Sonarr (8989) → Transmission (9091) → Je Конфиг: `/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`). Без `^~` сервисы открываются белым экраном. +**⚠️ Pitfall:** OMV имеет regex `location ~* \.json$` который перехватывает все JSON запросы (в т.ч. `/sonarr/initialize.json`). Без `^~` сервисы открываются белым экраном. ## Docker Networks diff --git a/wiki/tech/htpc-kodi-layout.md b/wiki/tech/htpc-kodi-layout.md index b4a4a866..af06dcf1 100644 --- a/wiki/tech/htpc-kodi-layout.md +++ b/wiki/tech/htpc-kodi-layout.md @@ -1,5 +1,6 @@ --- title: "HTPC — Kodi NFO, Симлинки, Media Layout" +namespace: personal type: reference tags: - htpc @@ -9,7 +10,9 @@ tags: - media - wol created: '2026-05-19' -updated: '2026-05-19' +updated: '2026-05-20' +last_synced: '2026-05-20' +confidence: 0.9 --- # HTPC — Kodi NFO, Симлинки, Media Layout diff --git a/wiki/tech/htpc-steam-emulators.md b/wiki/tech/htpc-steam-emulators.md index ec742dcb..19a17afe 100644 --- a/wiki/tech/htpc-steam-emulators.md +++ b/wiki/tech/htpc-steam-emulators.md @@ -1,7 +1,9 @@ --- title: HTPC — Steam, Эмуляторы, Геймпады +namespace: personal created: '2026-05-17' -updated: '2026-05-17' +updated: '2026-05-20' +last_synced: '2026-05-20' type: reference tags: - htpc @@ -9,7 +11,7 @@ tags: - emulators - gamepads - bazzite -confidence: high +confidence: 0.9 --- # HTPC — Steam, Эмуляторы, Геймпады @@ -38,3 +40,126 @@ confidence: high - 2× 8BitDo (Xbox-схема, X-режим) - Dolphin: SDL-маппинг, Classic Controller - DKC Returns: X = Roll+Shake + +## Switch Эмуляция — Ryujinx (Ryubing) + +Оригинальный Ryujinx и Yuzu закрыты (Nintendo судится). Живые форки: + +| Эмулятор | Основа | Статус | Платформа | +|----------|--------|--------|-----------| +| **Ryujinx (Ryubing/GreemDev)** | Ryujinx | ✅ Активно | Flatpak `io.github.ryubing.Ryujinx` | +| Eden | Yuzu | ✅ Активно | Android | +| Citron | Yuzu | Активно | Альтернатива | + +**Для HTPC: Ryujinx (Ryubing) v1.3.3 через Flatpak.** + +### Установка (✅ 2026-05-16) + +```bash +flatpak install -y --user flathub io.github.ryubing.Ryujinx +``` + +**Пути (Flatpak):** +``` +# Keys: +~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/system/prod.keys +~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/system/title.keys + +# ROMs: +~/Emulation/roms/switch/ (Steam ROM Manager подхватит) + +# Saves: +~/.var/app/io.github.ryubing.Ryujinx/data/Ryujinx/bis/user/save/ +``` + +### prod.keys — Источники + +- **GitHub THZoria/NX_Firmware** ⭐ — актуальная версия firmware + keys (22.1.0, апр. 2026) +- **4PDA** — тема Switch ROM'ов, в шапке ссылки на firmware/keys +- **Rutracker** — раздел `/f=1605`, в шапках тем часто есть keys + +**Firmware** устанавливается через GUI: Ryujinx → Tools → Install Firmware → Install from ZIP +Keys и firmware должны быть одной версии. + +### ROMs форматы +- `.nsp` — предпочтительный (Nintendo Submission Package) +- `.xci` — картридж-дамп, тоже работает + +### DKC Tropical Freeze — совместимость +Подтверждено: работает на схожем железе (i5-6500 + GTX 1050 Ti). HTPC (i7-6800K + RX 570, Vulkan) — ожидается Playable–Perfect. + +## qBittorrent на HTPC (✅ 2026-05-16) + +```bash +flatpak install -y --user flathub org.qbittorrent.qBittorrent +# Версия 5.2.0 +``` + +| Настройка | Значение | +|-----------|----------| +| Web UI | http://192.168.1.86:8080 | +| BitTorrent port | 6881 | +| Download dir | `/run/media/bazzite/Data/downloads/complete` | +| Incomplete dir | `/run/media/bazzite/Data/downloads/incomplete` | + +**Sonarr/Radarr интеграция:** Settings → Download Clients → Add → qBittorrent (host: `192.168.1.86`, port: `8080`). + +### API — добавить торрент + +```bash +# Логин +SID=$(curl -s -i --header 'Referer: http://192.168.1.86:8080' \ + --data 'username=admin&password=PASSWORD' \ + http://192.168.1.86:8080/api/v2/auth/login \ + | grep -i 'set-cookie' | grep -o 'SID=[^;]*') + +# Добавить магнет +curl -s --cookie "$SID" \ + --data-urlencode "urls=magnet:?xt=urn:btih:HASH..." \ + --data "savepath=/home/bazzite/Emulation/roms/switch/" \ + http://192.168.1.86:8080/api/v2/torrents/add +``` + +## Jackett на Кракене — Поиск ROM/торрентов + +```yaml +# /srv/.../docker/jackett/docker-compose.yml +services: + jackett: + image: lscr.io/linuxserver/jackett:latest + container_name: jackett + environment: + - PUID=1000 + - PGID=1000 + - TZ=Asia/Bishkek + volumes: + - ./config:/config + - ./downloads:/downloads + ports: + - 9117:9117 + restart: unless-stopped +``` + +Web UI: `http://kraken:9117` +Поддерживает RuTracker (нужна учётка). API: Torznab endpoint. + +```bash +# Поиск игры +curl "http://192.168.1.14:9117/api/v2.0/indexers/rutracker/results/torznab/?apikey=***&t=search&q=Donkey+Kong+Tropical+Freeze+Switch&cat=8000" +``` + +## Целевой Flow: Агент ищет и качает ROM + +``` +Eagle/Кракен → Jackett API (Кракен :9117) → RuTracker + → Выбор лучшего torrent (seeders, формат NSP/XCI) + → qBittorrent API (HTPC :8080) — magnet + savepath=/Emulation/roms/switch/ + → Steam ROM Manager → игра в Gaming Mode +``` + +## See Also + +- [[tech/htpc-kodi-layout]] — Kodi, NFO, симлинки, медиа-структура +- [[tech/kraken-network]] — сеть, WireGuard, топология +- [[tech/arr-stack-kraken]] — Prowlarr/Radarr/Sonarr на Кракене + diff --git a/wiki/tech/kraken-network.md b/wiki/tech/kraken-network.md index b6e7e5aa..9806046f 100644 --- a/wiki/tech/kraken-network.md +++ b/wiki/tech/kraken-network.md @@ -1,7 +1,9 @@ --- title: Kraken Network & Infra +namespace: work created: '2026-05-17' -updated: '2026-05-18' +updated: '2026-05-20' +last_synced: '2026-05-20' type: reference tags: - kraken diff --git a/wiki/tech/media-pipeline-pitfalls.md b/wiki/tech/media-pipeline-pitfalls.md index 32f44603..3fa7c1a1 100644 --- a/wiki/tech/media-pipeline-pitfalls.md +++ b/wiki/tech/media-pipeline-pitfalls.md @@ -1,7 +1,9 @@ --- title: Media Pipeline — Pitfalls & Debug Notes +namespace: work created: '2026-05-16' -updated: '2026-05-18' +updated: '2026-05-20' +last_synced: '2026-05-20' type: entity tags: - media-pipeline diff --git a/wiki/tech/vault-namespace.md b/wiki/tech/vault-namespace.md index cb8ef5ad..ba7ea174 100644 --- a/wiki/tech/vault-namespace.md +++ b/wiki/tech/vault-namespace.md @@ -1,7 +1,9 @@ --- title: Vault Namespace Rules +namespace: work created: '2026-05-17' -updated: '2026-05-17' +updated: '2026-05-20' +last_synced: '2026-05-20' type: reference tags: - vault