ArcaneDemesne Homelab

7/15/2026

ArcaneDemesne Homelab

Central dashboard and admin surface for our private infrastructure — system tiles, articles, and user profiles behind Authentik OIDC.

What we are building

Arcane Demesne is a small product studio: we ship SaaS tools, consumer apps, and small indie games. Homelab is the nerve center — not the only product, but the place we monitor services, publish docs, and jump to sibling apps.

Lane Examples
SaaS WorkSuite — multi-tenant orgs, projects, teams, Kanban backlog
Apps SeedSlinger — A soon to benursery and garden management with growth forecasting
Games The Marked — A soon to be in-progress sci-fi/fanasty open world action RPG

We are invite-first on production apps, iterate in the open on infra, and add more surfaces behind the same identity layer over time.

What Homelab is for

See which services are up, jump to Forgejo / Cloudflare / WorkSuite, and publish short docs (like this one). Right now the stack runs on a laptop for R&D; we will move the same Compose layout to a home server later.

Prototype mode: breaking schema changes are fine. We squash migrations and make clean when the data model shifts — not a production cutover yet.

Stack at a glance

  • Podman Composehomelab-api, homelab-app, postgres, homelab-proxy (nginx)
  • Postgres 16 — articles, systems, user profiles; migrations via golang-migrate
  • Go BFF API:5083 host / :8080 in container; session cookie auth
  • Astro + React islands:4083 app; admin UI with markdown editor; Bun for frontend tooling
  • nginx edge:8083 on host; joins gateway-hub network
  • Authentik — OIDC; Subject mode = User UUID for audit columns
  • Cloudflare — tunnels, DNS, and edge routing for public endpoints

Sibling apps (WorkSuite, SeedSlinger, future games) reuse the same patterns: Go BFF + Astro SSR + Postgres + nginx, with shared React UI in Packages/ui.

Shared monorepo packages

Handler → service → repository layout. Shared Go modules live under Packages/ (authentication, entity, dbpool, userprofile, …). Frontend islands pull from @arcanedemesne/ui and @arcanedemesne/forms.

Roadmap (short)

  • Harden WorkSuite for daily use; grow org/project/team workflows
  • Keep SeedSlinger and future consumer apps on the same auth + gateway fabric
  • Prototype small indie games (The Marked first) without over-scoping
  • Move from laptop R&D to a dedicated home server when the stack stabilizes

How we test a launch

From the Homelab repo root:

  1. make clean — wipe Postgres volume (destructive)
  2. make up-prod — build and start stack (auth.arcanedemesne.com authority)
  3. make migrate-up — apply 000001 schema (incl. container_names) + 000002 seeds
  4. Open the dashboard at nginx :8083, sign in, confirm system tiles and this article

Split-port host dev (no app container): make run in backend/, bun dev in frontend/homelab/ — see PORT_MATRIX for ports.