Files
obsidian-vault/200 projects/Tools Software WebUI/Family Home Lab.md

4.7 KiB

created, modified, type, tags, aliases
created modified type tags aliases
2026-09-09 11:55 2026-09-09 12:00 note
family
home-lab
showcase
project
Family Home Lab
Home Lab Console

Family Home Lab

A self-hosted family console + tool lab on our home network. One login at https://console.lab.audasmedia.com.au gives every household member a dashboard of ~40 self-hosted services, AI chat, a voice assistant, media tools and file sharing — all running on our own gear.

Interactive architecture map: maps.lab → Family Home Lab

What it is

  • Console portal — per-user logins (sam/jo/harry/finn), searchable home-dash tool cards, admin area (users, passwords, live Pi-dashboard), Files upload, dark mode.
  • AI chat (dsh) — a private per-user chat (chat/reasoning/coding + multimodal GLM), with conversation memory, web/doc summarise, image ingest & generate, and video screen analysis. Hardened: read-only filesystem, no shell.
  • Voice assistant (Jervis) — a local LLM voice agent: talk to it or type on the Voice page — it controls Home Assistant (lights/switches), shopping list, weather, timers, reminders, character voices.
  • Media tools — GIMP (edit), KdenLive (video), Audacity (audio), LMMS (music) — all browser-based.
  • Transcriber — turn audio or video into MIDI (Basic Pitch) or sheet music (MuScriptor).
  • Storage — Garage S3 object storage + a shared media folder; offsite Amazon S3 backups.

How to use it

  1. Go to console.lab.audasmedia.com.au and log in.
  2. Dashboard — every service is a card, grouped and searchable; kids get a reduced view, admins see everything.
  3. Files — upload from your browser; it appears in the media tools (~/media) and you can view/download/delete.
  4. Chat — pick a model (chat / reasoning / coding / multimodal), attach images, summarise a page or file, generate an image, or analyze a screen recording.
  5. Voice — type a command (lights, weather, shopping, timers) and Jervis answers and speaks.
  6. Admin — add/rename users, change passwords, watch live agent sessions.

Architecture

flowchart LR
    U[Family browsers / phones] -->|https *.lab| C[Caddy :35]
    C -->|console.lab| P[Console portal FastAPI :13:8500]
    C -->|dsh-*.lab| D[dsh chat x4 SSE]
    C -->|media/apps.lab| A[Media + ~40 apps]
    P -->|SQL| DB[(Postgres+Redis)]
    P -->|transcribe| W[Celery workers + RabbitMQ]
    D -->|LLM| OR[OmniRoute :20129]
    OR -->|chat/reasoning/coding| OC[opencode-go / deepseek]
    D -->|vision/video| OL[OpenRouter GPT-5 · GLM-5v]
    P -->|Files/S3| G[(Garage S3 + shared-media)]
    G -.->|Borg| BACK[(Amazon S3 offsite)]
    U -->|Voice page| V[Jervis voice agent :8501]
    V -->|HA REST/MQTT| HA[Home Assistant]

Where things live

Area Location
Source & Gitea /home/sam/home_network/custom_tools/family_home_lab → sam/family_home_lab
Portal stack .13 Docker compose /home/sam/Docker/Containers/family-home-lab
dsh chat .13 /home/sam/Docker/Containers/dsh
Voice agent (Jervis) .13 :8501 (NixOS systemd)
Data /mnt/data/family-home-lab/ (Garage, shared-media, dsh, pi-dashboard) — Borg-backed
Proxy/DNS Caddy on .35; public *.lab.audasmedia.com.au, LAN-only *.home.lab
Maps site maps.lab.audasmedia.com.au (published Archify maps)
Tasks / Docs Vikunja "Family Home Lab" project · Outline "Family Home Lab" collection

Tools used

  • Web/portal — FastAPI · Jinja2 · HTMX · Postgres · Redis · Celery/RabbitMQ · boto3 · docker compose
  • AI — OmniRoute (LLM gateway) · OpenRouter (vision/image) · DeepSeek/opencode-go · GLM-5v · Basic Pitch · MuScriptor · piper TTS
  • Apps/services — Garage S3 · Caddy · Gitea · Vikunja · Outline · Home Assistant · Metube · Jellyfin · Nextcloud · Immich (+ more)
  • Infra — NixOS (.13/.27) · Ubuntu (.35) · pi agent · systemd · RustDesk · Borg

Config notes for future maintenance (no secrets)

  • LLM routing: chat/reasoning/coding go through OmniRoute on .13:20129 as pinned deterministic model ids (skip the flaky auto/* pools); vision/image/video go through OpenRouter.
  • Secrets live only in .env files (git-ignored) and the machine secrets store — never commit.
  • Deploy an edit: push to Gitea → rsync/scp to .13 → docker compose up -d --build <service>; Caddy edits on .35.
  • Maps: after any archify deliver, run publish-maps.sh to update maps.lab.