Wiki
67 articles, synced directly from wiki.niklas-stephan.de.
kb
- niklas-stephan.de site: Astro rewrite with Wiki.js MCP content source (nsde container)
- llama.cpp image source for metis and what to watch upstream metis llama runs kyuz0/amd-strix-halo-toolboxes:vulkan-radv (unpinned, auto-rebuilt on llama.cpp master); how to check the build and which upstream issues matter for the flashnext config.
- Gyro (TQ trellis) quants for Flash-Next: compatibility and fit on metis Verified 2026-11-01 against the actual repos and the live container.
- Outline semantic search: LIVE on handtrixxx.com (sidecar, Redis, local embeddings, MCP… Live since 2026-10-31: semantic_search MCP over Outline at docs.niklas-stephan.de/semantic/mcp; deployment, keys, client config, ops, measurements, open items.
- Agent memory system (Wiki.js KB + git config repo) How agent memory works: Wiki.js (wiki.niklas-stephan.de, path kb/) is the memory store; git holds rules/skills/bin; wiki MCP + semantic sidecar + kb CLI access. Read first.
- AI gateway: agentgateway (ai.handtrixxx.com + mcp.handtrixxx.com) - replaced OmniRoute 2026-11-01 Production LLM + MCP gateway agentgateway v1.7.0 on handtrixxx.com (replaced OmniRoute and the Headroom sidecar 2026-11-01): layout, keys, models, MCP targets, rollback. Read before touching the gateway.
- Gramps Web at family.niklas-stephan.de with Authentik OIDC Gramps Web deployed 2026-10-25 at family.niklas-stephan.de with Authentik OIDC login; client secret in project .env.
- Pi 5 hestia as an aux LLM: measured speeds and model choice Pi 5 hestia can host a small aux model (4B \~3-6 tok/s, prefill-bound tasks only); tuning, best models and RAM limits. Read before any aux-LLM work on hestia.
- Philips 55OLED706 TV debloat + CleanYourTV launcher Wohnzimmer TV is a Philips 55OLED706/12 (Android TV 11, 32-bit, PH1M_EA_9970A) at 192.168.68.62; debloated, CleanYourTV launcher, ADB from iris. Read before any TV task.
- PHP containers on the homelab and the Oct 2026 PHP RCE update Which containers run PHP (only handtrixxx.com), how to check/update them after a PHP security release; CVE-2026-109618/109619 handled 2026-10-22.
- Visual UI testing on the ThinkPad: Playwright via venv (no pip, no working firefox headless) Use a python3 venv + playwright + chromium to screenshot pages for UI checks; firefox --headless screenshots fail on this box; system python3 has no pip.
- Playbook for risky production changes (migrations, upgrades, cutovers) Read before any migration/upgrade/cutover of a production service: pre-flight, isolation, abort criteria, evidence capture, honest root-cause labelling.
- Sandbox can't bind non-loopback ports sandbox rule: bind listeners to 127.0.0.1, never bare :PORT ("failed to lookup address information").
- Schlafzimmer Zigbee remote (Sonoff SNZB-01P) on ZHA Schlafzimmer remote = Sonoff SNZB-01P on ZHA, wired to innr Deckenlampe via device automations (short=toggle, double=on, long=off); verified working 2026-10-19.
- Stalwart 1.0 upgrade: migration procedure (not in-place) Stalwart runs v1 (stalwartlabs/stalwart:v1) since 2026-10-27 via stalwart-migrate; read for rollback, compose layout and the 2026-10-26 failed attempt.
- TV emulation: RetroArch setup on the Philips Android TV (ES-DE impossible, 32-bit) RetroArch is the TV frontend (ES-DE needs 64-bit, TV is 32-bit); 4985 ROMs + 24 playlists installed on the Philips TV, sourced from RomM on handtrixxx.com.
- WolfES-DE on metis: curated ROM library, storage layout, Wolf API socket WolfES-DE ROMs at /data/sources/ROMS (one game per platform, mounted as /ROMs); Wolf API socket /var/run/wolf/wolf.sock (sudo); ES-DE data persists in profile-data/user/WolfES-DE
- Outline KB migration 2026-10: git memories moved into collection KB (cutover done) Outline KB is the memory store since 2026-10-31: what was migrated, format gotchas, cutover result, open items. Read before changing memory storage.
- User model (Niklas) User model (Niklas)
- ZFS / syncoid CLI gotchas (trixie, zfs 2.4.4, sanoid v2.3.0) non-obvious zfs/syncoid behaviour.
- Stalwart programmatic management (agent account, API key, CLI/JMAP) How to manage Stalwart (mail) from scripts: agent@ account, scoped API key, stalwart-cli location, JMAP x: request format. Read for any mail/mailbox task.
- LLM Benchmark Suite on Metis (/data/sources/llm-bench) + Strix Halo BIOS memory benchmark methodology + BIOS/TTM notes; the 2026-10-12 "Ornith won" picture is superseded (prod is llama-flashnext since 2026-10-18).
- Lidl-Reisen: unofficial search API (GraphQL) for trip/price scans lidl-reisen.de has no official API but open GraphQL/REST backends; use lidl-reisen/lidl_api.py to scan offers, dates and cheapest airport.
- Ubuntu Landscape removed; Ubuntu Pro, livepatch and unattended-upgrades per host Landscape purged all hosts; Ubuntu Pro attached on all 5 hosts; livepatch on 4 (hestia kernel uncovered); unattended-upgrades active, no auto-reboot.
- Validating GitHub Links Before Fetching (context-waste guard) probe github links via the REST API before fetching.
- Docker Projects on Iris The 10 compose projects on iris (HA, voice, frigate, mqtt, music, adguard, metube, backrest, tailscale, arcane-agent) - ports and gotchas. Read before any iris task.
- Backup setup: restic + Backrest farm, repos on the Pi 5 hestia (since 2026-10-21) Live restic+Backrest backup farm writing to the rest-server on Pi 5 hestia (dashboard hub on hestia since 2026-10-23, three host clients). Plans, helpers, gotchas. Read before any backup work.
- Docker compose project README convention (Arcane, all hosts) Convention (decided 2026-10-27): every compose project on all servers gets a consistent README.md describing what it provides, its interfaces, and how AI/agents can access it.
- /data Workspace Conventions folder layout, naming, pnpm only, how to apply compose changes.
- Home Assistant on iris: update, Zigbee, voice stack, LLM conversation agent HA live on iris since 2026-10-21 (voice on iris, llama on metis at 192.168.68.50:8000); update procedure, ZHA/ConBee, Wyoming stack, conversation-agent config, current HA model is qwen3.8-flashnext.
- ARCHIVE: Unified KB/OpenClaw/Zed memory architecture (superseded by memory-system) ARCHIVE: OpenClaw/kb-sync-era memory pipeline history and the discontinued Alexandria MCP. Current state lives in `memory-system`.
- weboid — Custom Backup Solution (Architecture) weboid backup tool design/status (repo now deleted); durable architecture + gotchas for a rebuild. urbackup retired 2026-10-19.
- Raspberry Pi 5 backup server hestia (live since 2026-10-21) Pi 5 hestia: restic rest-server on ext4 disk, access, speeds, setup steps and gotchas; replaces the Deco USB share. Read before any backup work.
- Metis is a headless server (desktop environment removed) metis is now headless: GNOME/Xfce/LXQt/X removed 2026-10-20, boot target multi-user, only docker services left. Read before any metis task.
- Engine/model benchmark 2026-10-24: strix-llama -ub 512 wins, now prod Results of the Flash-Next engine/model A/B, why strix-llama -ub 512 became standard, rejected candidates, suite usage, open items.
- Home Assistant touchscreen kiosk on iris (GNOME, prepared 2026-10-21) iris HA kiosk: GNOME + gdm autologin + firefox --kiosk, prepared but untested until the screen is attached; install/revert script and checks.
- Homelab Server Inventory which server is what, SSH access, what runs where. Read before any infra task.
- Homelab backlog / TODO (single list) All open items for handtrixxx.com, metis, iris, hestia in one place; open-todos merged 2026-11-01; dead ends listed. Check before proposing new work.
- Headscale / Tailscale Tailnet Reference tailnet map (100.64.0.x), headscale setup/CLI cheat sheet, current gotchas. Fix-log history: headscale-tailscale-reference-archive.
- Docker compose command vs entrypoint gotchas compose `command:` only replaces CMD (do not repeat the image binary); verifying Traefik routing.
- ARCHIVE: LiteLLM /v1/memory - KV store only (not a KB) Historical (2026-10-25): LiteLLM built-in memory is a plain KV table, never a KB; Outline KB is the store. Read only if a gateway memory feature is ever reconsidered.
- Zed Agent + Local Model: Context Compaction Gotchas why compaction fails on over-limit threads; threshold -30000 + compaction_model choice; copilot_chat windows come from GitHub's catalog (no override); chunk large write_file calls.
- ARCHIVE: Open TODOs (merged into homelab-backlog 2026-11-01) Superseded: all items were folded into homelab-backlog on 2026-11-01. Read homelab-backlog instead.
- Local context compaction: RustySqueezer fake-LLM compactor (built) RustySqueezer v1.0.6 in prod (pin bumped, verified); gateway compaction proven; OpenCode plan: native agents.compaction.model
- AGENTS.md rules: where they live and why where the AGENTS.md rules live (kb/agents.md, rendered per host) and why the Context7-first docs rule exists.
- Authentik on handtrixxx.com (auth.handtrixxx.com) Authentik 2026.8.5 deploy on handtrixxx.com: upgrade path rules, trusted-proxy gotcha, base URL requirement, backups, OIDC endpoints.
- Always-on agent eval 2026-10: pi+pi-web-ui vs OpenCode vs LiteLLM Agent Gateway Eval done: pi + pi-web-ui chosen, deployed at agent.handtrixxx.com, meets all requirements. Alexandria MCP intentionally offline; agent uses /kb mount. Write-up in code/tasks/.
- Home Assistant room areas: Wohnzimmer/Küche split and Lichter groups Home Assistant room areas: Wohnzimmer/Küche split and Lichter groups
- MCP gateway options analysis: OmniRoute vs LiteLLM vs mcphub vs agentgateway (2026-11-01) Analysis of whether the OmniRoute switch (2026-10-31) was right given its lack of an MCP federation gateway. OmniRoute MCP = control-plane only; LiteLLM MCP = experimental and a poor reason to roll back; mcphub recommended as standalone mcp.handtrixx
- AI gateway: OmniRoute (ai.handtrixxx.com) - replaced LiteLLM 2026-10-31 Production LLM gateway OmniRoute + chained Headroom on handtrixxx.com: routes, keys, combos, admin API, Headroom verdict, gotchas, LiteLLM rollback. Read before touching the gateway.