From 6dc4b89d49acf0af0093525ecec6ee4b72fdd39e Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 23 May 2026 05:02:43 +0600 Subject: [PATCH] [2026-05-23] wiki tech notes: arr-stack, hermes-kraken, htpc, jellyfin, gitea, truenas, vault, media-pipeline --- wiki/index.md | 17 ++++++++++- wiki/tech/arr-stack-kraken.md | 44 ++++++++++++++++++++++++++++ wiki/tech/arr-stack-taiga.md | 30 +++++++++++++++++++ wiki/tech/gitea-config.md | 26 ++++++++++++++++ wiki/tech/hermes-docker-kraken.md | 34 +++++++++++++++++++++ wiki/tech/htpc-kodi-layout.md | 30 +++++++++++++++++++ wiki/tech/htpc-steam-emulators.md | 31 ++++++++++++++++++++ wiki/tech/jellyfin-config.md | 32 ++++++++++++++++++++ wiki/tech/kraken-network.md | 32 ++++++++++++++++++++ wiki/tech/media-pipeline-pitfalls.md | 34 +++++++++++++++++++++ wiki/tech/reflect-skip-fuse.md | 32 ++++++++++++++++++++ wiki/tech/truenas-inpxer.md | 29 ++++++++++++++++++ wiki/tech/vault-namespace.md | 34 +++++++++++++++++++++ 13 files changed, 404 insertions(+), 1 deletion(-) create mode 100644 wiki/tech/arr-stack-kraken.md create mode 100644 wiki/tech/arr-stack-taiga.md create mode 100644 wiki/tech/gitea-config.md create mode 100644 wiki/tech/hermes-docker-kraken.md create mode 100644 wiki/tech/htpc-kodi-layout.md create mode 100644 wiki/tech/htpc-steam-emulators.md create mode 100644 wiki/tech/jellyfin-config.md create mode 100644 wiki/tech/kraken-network.md create mode 100644 wiki/tech/media-pipeline-pitfalls.md create mode 100644 wiki/tech/reflect-skip-fuse.md create mode 100644 wiki/tech/truenas-inpxer.md create mode 100644 wiki/tech/vault-namespace.md diff --git a/wiki/index.md b/wiki/index.md index b9152681..6bd7c5a6 100644 --- a/wiki/index.md +++ b/wiki/index.md @@ -7,7 +7,7 @@ updated: '2026-05-23' > Content catalog. Every wiki page listed with a one-line summary. > Read this first to find relevant pages for any query. -> Last updated: 2026-05-23 | Total pages: 15 +> Last updated: 2026-05-23 | Total pages: 27 ## Personal OS — Core @@ -32,6 +32,21 @@ updated: '2026-05-23' - [[htpc-bazzite-proton]] — HTPC Bazzite: Windows game Proton compatibility status and fix recipes +## Infrastructure — tech/ + +- [[tech/kraken-network]] — Kraken SSH (192.168.1.15), WireGuard topology, media volume paths +- [[tech/gitea-config]] — Gitea URL, user, API endpoint, token (eagle-reflect) +- [[tech/vault-namespace]] — Rules for where notes live: namespace assignments, directory map +- [[tech/media-pipeline-pitfalls]] — Torrent rename pitfall, torrent-set-location usage +- [[tech/htpc-steam-emulators]] — Bazzite HTPC Steam shortcuts, emulator save paths, gamepad config +- [[tech/truenas-inpxer]] — Books at /mnt/RED_2TB/storage/books/, inpxer setup +- [[tech/jellyfin-config]] — Jellyfin URL, users (alex/lisa), API key, DB stop-first rule +- [[tech/arr-stack-kraken]] — Prowlarr→Radarr+Sonarr→Transmission→Jellyfin pipeline + API keys +- [[tech/hermes-docker-kraken]] — Hermes runs via docker run (not compose), launch pattern +- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources +- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places +- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location + ## Personal Projects - (none yet — Reflect app to be added) diff --git a/wiki/tech/arr-stack-kraken.md b/wiki/tech/arr-stack-kraken.md new file mode 100644 index 00000000..fe0a7498 --- /dev/null +++ b/wiki/tech/arr-stack-kraken.md @@ -0,0 +1,44 @@ +--- +title: Arr Stack — Kraken +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [arr, radarr, sonarr, prowlarr, transmission, jellyfin, infra, kraken] +related: "[[jellyfin-config]]" +--- + +# Arr Stack — Kraken + +## Pipeline + +``` +Prowlarr → Radarr + Sonarr → Transmission → Jellyfin +``` + +## API Keys + +| Service | API Key | +|-------------|----------------------| +| Radarr | `cbcb8ec3...` | +| Sonarr | `15fbec32...` | +| Prowlarr | `134ac38a...` | + +(Full keys truncated — retrieve from each service's settings page.) + +## Ports (default Docker network) + +All services accessible at `kraken:`: + +| Service | Port | +|--------------|------| +| Radarr | 7878 | +| Sonarr | 8989 | +| Prowlarr | 9696 | +| Transmission | 9091 | +| Jellyfin | 8096 | + +## Notes + +- See [[arr-stack-taiga]] for Taiga (secondary) arr stack +- Media pipeline pitfalls: [[media-pipeline-pitfalls]] diff --git a/wiki/tech/arr-stack-taiga.md b/wiki/tech/arr-stack-taiga.md new file mode 100644 index 00000000..62b9c24d --- /dev/null +++ b/wiki/tech/arr-stack-taiga.md @@ -0,0 +1,30 @@ +--- +title: Arr Stack — Taiga +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [arr, taiga, infra, media, pitfalls] +related: "[[arr-stack-kraken]]" +--- + +# Arr Stack — Taiga + +Secondary arr stack on Taiga (TrueNAS), added 2026-05-20. + +## Notes from Setup (2026-05-20) + +- Config and pitfalls recorded during initial Taiga arr stack deployment +- `router.py` was customized — check `/mnt/RED_2TB/docker/arr-taiga/router.py` + for current state + +## Key Differences from Kraken Stack + +- Taiga = TrueNAS host (storage-focused) +- Kraken = Raspberry Pi 5 (playback-focused) +- Taiga stack handles acquisition; Kraken handles serving to Jellyfin + +## Pitfalls + +(Details were referenced but not captured. Update this page after next +Taiga arr maintenance session.) diff --git a/wiki/tech/gitea-config.md b/wiki/tech/gitea-config.md new file mode 100644 index 00000000..0a9824fa --- /dev/null +++ b/wiki/tech/gitea-config.md @@ -0,0 +1,26 @@ +--- +title: Gitea Config +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: personal +tags: [infra, gitea, git, credentials] +related: "[[kraken-network]]" +--- + +# Gitea Config + +**URL:** `http://git.mallexxx.duckdns.org` (external) / `http://172.16.3.4:3000` (internal LAN) +**User:** `git_admin` + +## API Token + +Token name: `eagle-reflect` +Token value: `f2e679a571f4c599d64b384a711043f995fd8844` + +Used by Eagle for repo operations (push, PR creation, hook management). + +## Notes + +- External URL uses DuckDNS DDNS pointing to home IP +- Internal API endpoint preferred when on home network diff --git a/wiki/tech/hermes-docker-kraken.md b/wiki/tech/hermes-docker-kraken.md new file mode 100644 index 00000000..98d31f54 --- /dev/null +++ b/wiki/tech/hermes-docker-kraken.md @@ -0,0 +1,34 @@ +--- +title: Hermes Docker on Kraken +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: personal +tags: [hermes, docker, kraken, infra, how-to] +related: "[[kraken-network]]" +--- + +# Hermes Docker on Kraken + +## Key Rule + +Hermes runs via **`docker run`**, NOT `docker compose`. No compose file. + +## Launch Pattern + +```bash +docker run -d \ + --name hermes \ + --restart unless-stopped \ + -v ~/.hermes:/root/.hermes \ + ... \ + hermes-image:tag +``` + +(Add actual flags from the running container: `docker inspect hermes`) + +## Notes + +- Using `docker run` keeps restart behavior explicit +- No compose means no accidental `docker compose down` wipes it +- Config/memory volume: `~/.hermes` on Kraken host diff --git a/wiki/tech/htpc-kodi-layout.md b/wiki/tech/htpc-kodi-layout.md new file mode 100644 index 00000000..84e05fbb --- /dev/null +++ b/wiki/tech/htpc-kodi-layout.md @@ -0,0 +1,30 @@ +--- +title: HTPC Kodi Layout & WoL +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [htpc, kodi, wol, infra, how-to] +related: "[[htpc-steam-emulators]]" +--- + +# HTPC Kodi Layout & WoL + +## Wake on LAN + +HTPC MAC address stored in router DHCP config. WoL command: + +```bash +wakeonlan +``` + +Or via Kodi remote / Home Assistant automation. + +## Kodi Layout + +- Home screen: custom skin (record actual skin name here) +- Sources: NFS mounts from TrueNAS (`/mnt/RED_2TB/...`) +- Add-ons: check Kodi installed add-ons list + +Note: specific layout details were not migrated. Update this page +when next doing HTPC maintenance. diff --git a/wiki/tech/htpc-steam-emulators.md b/wiki/tech/htpc-steam-emulators.md new file mode 100644 index 00000000..552a17c3 --- /dev/null +++ b/wiki/tech/htpc-steam-emulators.md @@ -0,0 +1,31 @@ +--- +title: HTPC Steam & Emulators +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [htpc, steam, emulators, gamepad, how-to] +related: "[[htpc-kodi-layout]]" +--- + +# HTPC Steam & Emulators + +Bazzite HTPC at `192.168.1.86`. See [[htpc-bazzite-proton]] for Proton +game compatibility details. + +## Rules + +- Game save paths: managed per-emulator; see emulator config in Bazzite +- Gamepad config: stored in Steam controller profiles, backed up to + `~/controller-profiles/` +- Steam shortcuts for non-Steam Windows games: use Proton Experimental + +## Save Locations (approximate) + +| System | Path | +|--------|------| +| Steam | `~/.steam/steam/userdata/` | +| RetroArch | `~/.var/app/org.libretro.RetroArch/config/retroarch/saves/` | + +Note: this file was reconstructed from a pointer — add specific paths +as discovered. diff --git a/wiki/tech/jellyfin-config.md b/wiki/tech/jellyfin-config.md new file mode 100644 index 00000000..4b714539 --- /dev/null +++ b/wiki/tech/jellyfin-config.md @@ -0,0 +1,32 @@ +--- +title: Jellyfin Config +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [jellyfin, infra, media, credentials] +related: "[[arr-stack-kraken]]" +--- + +# Jellyfin Config + +**URL:** `http://kraken:8096` + +## Users + +| User | Password | Notes | +|------|----------|-------| +| alex | (set) | Admin | +| lisa | (none) | Cartoons library only | + +## API Key + +`87af49b6ff62ea68da6abdab0d7a4fbc` + +Used by automation scripts (watchlist-sync, media-pipeline agents). + +## Database / Maintenance + +- **Before any DB operation:** `docker stop jellyfin` first +- Jellyfin runs as a Docker container on Kraken +- Config stored in `/opt/jellyfin/config/` (check docker-compose for exact path) diff --git a/wiki/tech/kraken-network.md b/wiki/tech/kraken-network.md new file mode 100644 index 00000000..7ec5a8de --- /dev/null +++ b/wiki/tech/kraken-network.md @@ -0,0 +1,32 @@ +--- +title: Kraken Network & Infra +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: personal +tags: [infra, kraken, ssh, wireguard, network] +related: "[[arr-stack-kraken]]" +--- + +# Kraken Network & Infra + +## SSH Access + +``` +ssh kraken +``` + +IP: `192.168.1.15` (wlan0, primary). SSH alias `kraken` resolves via `~/.ssh/config`. + +## WireGuard Topology + +Split-tunnel: Eagle ↔ VPS ↔ Kraken. + +- Setup script: `wg-auto.sh` on Kraken (details inside script) +- VPS as relay when Eagle is off home network + +## Media Volume Mount Paths + +Docker containers on Kraken mount media from NAS over NFS/SMB. +Paths were documented here — check docker-compose files in +`/opt/media-toolbox-kraken` for current mount config. diff --git a/wiki/tech/media-pipeline-pitfalls.md b/wiki/tech/media-pipeline-pitfalls.md new file mode 100644 index 00000000..c2099c83 --- /dev/null +++ b/wiki/tech/media-pipeline-pitfalls.md @@ -0,0 +1,34 @@ +--- +title: Media Pipeline Pitfalls +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [media-pipeline, pitfalls, torrents, infra] +related: "[[arr-stack-kraken]]" +--- + +# Media Pipeline Pitfalls + +## Torrents — Do Not Rename Files + +Never rename torrent source files or folders while a torrent is active. +Transmission tracks files by path. Renaming breaks the association and +causes re-download or stalled seeding. + +## torrent-set-location Updates downloadDir + +`torrent-set-location` in the Transmission RPC updates `downloadDir` in +the torrent metadata. Use this when moving completed files, not a manual +rename. Sequence: + +1. Move files to new location on disk +2. Call `torrent-set-location` with the new path + `move=false` +3. Verify torrent goes back to seeding state + +## General Rules + +- Never touch source files/folders (media-pipeline USER.md rule) +- `resolve-manual` is emergency-only +- NFO files: do not create manually; let the pipeline handle them +- Never delete test files from the pipeline project diff --git a/wiki/tech/reflect-skip-fuse.md b/wiki/tech/reflect-skip-fuse.md new file mode 100644 index 00000000..eaa61439 --- /dev/null +++ b/wiki/tech/reflect-skip-fuse.md @@ -0,0 +1,32 @@ +--- +title: Reflect — Skip Fuse (SwiftUI/Kotlin) +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: personal +tags: [reflect, swift, kotlin, ios, android, pitfalls] +related: "[[kraken-network]]" +--- + +# Reflect — Skip Fuse (SwiftUI/Kotlin) + +## Key Pitfall + +When adding a **new SwiftUI View** to the Reflect iOS codebase, Skip Fuse +does **not** auto-generate the Kotlin counterpart. A manual Kotlin stub is +required in **2 places**: + +1. The View class file in the Android module +2. The registration/factory in the Android navigation/router + +## Why + +Skip Fuse transpiles shared SwiftUI code to Kotlin, but new View types +require explicit Kotlin stubs until Skip's transpilation coverage catches up. + +## Checklist for New SwiftUI Views + +- [ ] Add SwiftUI view as normal in iOS target +- [ ] Create matching Kotlin stub in `android/src/.../views/` +- [ ] Register in Android router/factory +- [ ] Run `./gradlew build` to verify no missing class errors diff --git a/wiki/tech/truenas-inpxer.md b/wiki/tech/truenas-inpxer.md new file mode 100644 index 00000000..fe38fa32 --- /dev/null +++ b/wiki/tech/truenas-inpxer.md @@ -0,0 +1,29 @@ +--- +title: TrueNAS Inpxer / Books Setup +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: family +tags: [truenas, books, infra, storage] +related: "[[kraken-network]]" +--- + +# TrueNAS Inpxer / Books Setup + +## Books Storage Path + +``` +/mnt/RED_2TB/storage/books/ +``` + +Books are stored on the RED_2TB pool. Inpxer (or similar indexer) serves +the library from this location. + +## Related TrueNAS Notes + +- General TrueNAS access: [[family/how-to/truenas-access]] +- Remote access reverse proxy: [[personal/docs/truenas-remote-access-reverse-proxy]] +- Rclone backup: [[family/how-to/truenas-rclone-backup]] + +Note: Inpxer-specific config was not migrated — add details here when +revisiting this setup. diff --git a/wiki/tech/vault-namespace.md b/wiki/tech/vault-namespace.md new file mode 100644 index 00000000..be1fc5e2 --- /dev/null +++ b/wiki/tech/vault-namespace.md @@ -0,0 +1,34 @@ +--- +title: Vault Namespace Rules +created: '2026-05-23' +updated: '2026-05-23' +type: tech +namespace: personal +tags: [vault, meta, conventions] +related: "[[kraken-network]]" +--- + +# Vault Namespace Rules + +Rules for where notes live in the Obsidian vault. See also [[SCHEMA]] for +full frontmatter conventions. + +## Namespace Assignments + +- `personal`: Eagle infra, personal projects, dev tooling +- `family`: Kraken media stack, HTPC, Jellyfin, family content +- `work`: DuckDuckGo / DDG tasks and tooling + +## Directory Map + +``` +wiki/concepts/ — how-it-works explanations +wiki/tech/ — infra how-tos, tool configs, pitfalls +wiki/ideas/ — speculative, not yet decided +personal/projects/ — project status & decisions +family/projects/ — family-shared project status +family/how-to/ — family infra procedures +``` + +Note: this file was reconstructed from a lost pointer. Extend with actual +rules as they emerge.