⟵ heavenlydemon.consulting / plan — living document

The Plan

What is running, what comes next, and what the machine needs to grow. One server, one tunnel, one reverse proxy — and every application a self-contained module that can be added or removed in minutes.

i.Architecture (live)

No inbound ports are open. Cloudflare terminates TLS and reaches the server over an outbound-only tunnel.

Internet ─▶ Cloudflare edge  (TLS · DNS · DDoS shield · cache)
                │
                │  outbound-only tunnel (cloudflared)
                ▼
        ┌───────────────────── server: /srv/hdc ─────────────────────┐
        │  cloudflared ─▶ traefik :80 ── Host-header routing          │
        │                        ├── heavenlydemon.consulting  → web │
        │                        ├── test.…/rat                → test│
        │                        └── *.heavenlydemon.consulting → any │
        │                             future app, via 2 labels        │
        └──────────────────────────────────────────────────────────────┘

  add an app:   hdc new <name> <subdomain>  →  edit compose  →  hdc dns …  →  hdc up …

ii.Service roadmap

Candidate installs, in rough order. Each is one compose file under /srv/hdc/apps/.

HostServiceStatusNotes / prereqs
@ / wwwweb
Landing + this plan
LIVEStatic nginx. The Daylight Court — final.
test.*test grounds
Experiments (/rat)
LIVEScratch space; break things here first.
search.*SearXNG
Private meta-search
LIVEHDC-skinned via the /theme/hdc.css token sheet + injection sidecar; JSON API enabled for agents.
example.*template library
Court design system
LIVEcourt.css + nine page templates (case study, essay, docs, console, …) for every future page and tool. Design finalized: the Daylight Court; labs (o1–o3) retired.
drive.*Nextcloud
Files, sync, calendar
NEXTWants ≥1 GB RAM + Postgres + Redis. Lighter alt: Filebrowser (~30 MB) until RAM upgrade.
img.*Immich
Photo library, ML search
NEEDS RAMRealistically 4 GB+ with ML jobs; current box has 2 GB. Deploy after hardware step, or run with ML disabled.
git.*Forgejo
Git hosting, CI later
NEXTTiny footprint (~200 MB). Also becomes the remote for /srv/hdc itself.
vault.*Vaultwarden
Password manager
LATERFeather-light. Put Cloudflare Access in front; backups are non-negotiable.
status.*Uptime Kuma
Monitoring + status page
NEXTTrivial install; gives eyes on everything else.
home.*Homepage
Dashboard of all services
LATERStatic config; add once 3+ services exist.
media.*Jellyfin
Media streaming
LATERTranscoding is CPU-hungry; direct-play is fine today. Pair with the 1 TB library drive.
notes.*Memos / Outline
Notes & docs
LATERMemos is single-binary light; Outline wants Postgres.
auto.*n8n
Workflow automation
LATERThe consulting demo machine: client integrations, webhooks, schedulers.
ai.*Open WebUI
LLM front-end
NEEDS RAMUI itself is light if inference stays on the desktop GPU or an API; local models need a bigger box.

iii.Hardware & platform

iv.Security & operations

Rule of thumb: the spine (proxy + tunnel) changes rarely and carefully; apps change freely and often. Anything that can be expressed as a compose file in apps/ is cheap to try and cheap to delete — so try things.