Files
obsidian-vault/300 areas/360 Dev-Ops Network Computers/FAMILY CONSOLE.md

5.1 KiB
Raw Blame History

created, modified, type, tags, aliases
created modified type tags aliases
2026-08-26 2026-08-26 note
family
home-lab
console
portal
maintenance
Family Console
Home Lab Console

FAMILY CONSOLE

Single reference for the self-hosted Family Home Lab console. Consolidates the four daily FAMILY notes (Build Status, Enterprise Architecture, S3/Garage, dsh Harness). Authoritative code/plan: /home/sam/home_network/custom_tools/family_home_lab/ (repo on .27 desktop; pushed to Gitea sam/family_home_lab).

What it is

A private web dashboard + tool launcher + chat tieren for the family. Log in at https://console.lab.audasmedia.com.au and reach every self-hosted service in the home lab (media, docs, storage, AI, notes, portfolio), one per-user account.

Where it runs / how traffic flows

  • Portal + core stack run on the .13 server (/home/sam/Docker/Containers/family-home-lab/): FastAPI + Jinja2 + HTMX portal on port 8500, with Postgres (users/prefs), Redis, RabbitMQ, Celery, Garage S3.
  • Reverse proxy / DNS: existing Caddy on .35; public zone *.lab.audasmedia.com.au → .35 → .13. *.home.lab are LAN-only.
  • Data under /mnt/data/family-home-lab/ (garage, shared-media, dsh, pi-dashboard) — covered by Borg backup on .13.

How it works (key pieces)

  • Accounts: four users sam / jo / harry / finn. Login = bcrypt password in Postgres (changeable via the portal Password page). No SSO — every app keeps its own login.
  • Home dash: a categorized catalogue with a search box listing all services. Cards open tools; badges mark LAN-only / has-own-login / admin.
  • Files: upload from your browser → files appear in the webtop tools (e.g. GIMP) under /media/<user>/, with thumbnail + view + download (console → email etc.).
  • Transcriber: audio → MIDI (Basic Pitch) and sheet music (MuScriptor).
  • Admin (sam only): add/rename users, change passwords, Pi Dashboard (live pi agent sessions synced from the pi host), manage the tool catalogue.

Chat bot (dsh)

A per-user DeepSeek chat harness (dsh-sam·jo·harry·finn.lab), custom FastAPI + SSE, one container each on .13 (ports 3081–3084). Includes:

  • Model picker — chat (opencode-go flash) · reasoning (deepseek flash) · coding (deepseek pro) · multimodal (GLM-5v). Default is opencode-go flash.
  • Memory — conversations saved with a sidebar (list/new/delete).
  • Web & doc summarise, image ingest, image generate, video/screen-recording analyze (ffmpeg → GLM).
  • Hardened — no shell/system calls: cap_drop ALL, read-only rootfs, non-root; read /workspace per user (on /mnt/data/.../dsh/<user>/).
  • Vision/media go through OpenRouter; text chat through OmniRoute on .13:20129.

Insights for future LLMs / maintenance (how to fix, edit, add)

  • Edit → deploy flow: change code in the repo (.27), commit + push to Gitea, then scp/rsync the changed folders to the matching .13 dir and docker compose up -d --build <service>. Caddy edits happen on .35 (back up Caddyfile first; reload with caddy reload).
  • Auth gotcha: Caddy basic-auth was removed from the browser media/chat tools earlier because it broke their asset loading (401s) — those have no login now. Apps with their own login kept it. Keep this in mind when adding a web tool.
  • OmniRoute: the built-in auto/best-* pools are flaky (stream empty). Don't add combos via its API (creates empty combos). dsh pins deterministic provider/model strings instead. OmniRoute is now behind Caddy basic-auth + a strong password (was being brute-forced).
  • Secrets hygiene: never put .env, API keys, or passwords in the repo. .gitignore covers .env/.pi/. OmniRoute/OpenRouter tokens are held by Sam (keep out of memory/notes).
  • Kids: jo/harry/finn get a reduced view (no AI/chat, no admin-only tools) and no shell in dsh.
  • Storage: Garage S3 buckets sam, jo-media, harry, finn, shared-media (S3 needs ≥3-char names). Per-user files land in shared-media/<user>/.

Project management

Tools involved (employment)

  • Portal/dash — FastAPI · Jinja2 · HTMX · Postgres/pgvector · Celery/RabbitMQ · Redis · boto3 · docker compose · Caddy
  • AI — OmniRoute (gateway) · OpenRouter (vision/image) · DeepSeek/opencode-go · GLM-5v · Basic Pitch (tensorflow) · MuScriptor · piper TTS · dsh (custom chat)
  • Apps — Garage S3 · Gitea · Vikunja · Outline · Home Assistant (Jervis) · Metube · Jellyfin · Nextcloud · Immich · +40 self-hosted
  • Infra — NixOS (.13/.27) · Ubuntu (.35) · pi agent · systemd · RustDesk