Failed to authenticate. API Error: 401 Invalid authentication credentials

[2026-05-20] vault sync
This commit is contained in:
Alexey Martemyanov
2026-05-20 03:08:06 +06:00
parent 6ee58a9461
commit 8f030c5981
14 changed files with 424 additions and 34 deletions
@@ -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
+50 -9
View File
@@ -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 на Кракене
+2
View File
@@ -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
+105
View File
@@ -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 питфоллы
+1
View File
@@ -67,3 +67,4 @@ sources:
- [[personal-os-architecture]] — Taiga как хост, TrueNAS infrastructure
- [[personal-os-schema]] — паттерны хранения данных в personal-os
- [[tech/truenas-inpxer]] — TrueNAS inpxer: пути, Badger DB lock питфол
+5 -2
View File
@@ -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
+40
View File
@@ -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 ✅
+7
View File
@@ -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
+5 -17
View File
@@ -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
+4 -1
View File
@@ -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
+127 -2
View File
@@ -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) — ожидается PlayablePerfect.
## 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 на Кракене
+3 -1
View File
@@ -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
+3 -1
View File
@@ -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
+3 -1
View File
@@ -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