| Orchestrator |
mld nodes, mld status, M1M32:~/dispatch/apps/*.json |
38 apps registered; manifests describe dir, PM2 processes, hooks, placement, tunnel.domain. Convention: ~/apps/<app>, Homebrew Node + pnpm + PM2, PostgreSQL 17 local to the node, .env (mode 600) excluded from rsync. |
| Tunnel |
mld tunnel status |
Single gateway BHS64 (51.161.112.61, OVH Beauharnois); 17 WireGuard peers; Caddy with 38 routes host → 10.67.0.x:port, automatic Let's Encrypt. Routes are created by mld deploy from the manifest. |
| DNS |
dig tools.spboucher.ai, dig <random>.spboucher.ai |
tools.spboucher.ai already has an explicit A record → 51.161.112.61 (not a wildcard). No Caddy route existed; HTTPS failed at the TLS handshake (no content to preserve). Nameservers: GoDaddy (domaincontrol.com). |
| Registrar access |
memory notes, cluster-skill docs |
DNS changes are made in the GoDaddy web console; there is no API-token integration in the cluster tooling. Not needed here because the record exists. |
| Secrets |
existing manifests, ~/Desktop/Cluster/secrets/ |
Pattern: secrets live in <app>/.env on the node (600) plus an offline copy under ~/Desktop/Cluster/secrets/<app>/; never in git. Some older manifests inline secrets in PM2 env — this project does not (hook requires .env). |
| Identity |
note/chat/akos apps |
Owner-only auth with argon2id passwords, TOTP and WebAuthn passkeys (simplewebauthn) — reused here. There is no shared SSO/IdP in the cluster. |
| Node candidates |
mld nodes + SSH probes |
M2M32c (Mac Studio, 12 cores, 32 GB, 417 GB free SSD): PostgreSQL 17.11 + pgvector 0.8.6 (Homebrew, localhost), Redis, Node 26, pnpm 12, PM2 7, wg1 peer 10.67.0.20, zero PM2 processes → chosen to avoid interfering with production nodes. Alternatives considered: M4M64c (hosts akos/chat/note), M3U96a (10 processes), M5M36 (no Postgres). |
| Remote-first rule |
MACLUSTR-PROCEDURE.md |
After first deploy, the node directory is a git clone (mld adopt), origin = spbgit (gitsrv). Edits happen on the node; laptop copy is a mirror. |
| Laptop toolchain |
node -v, pnpm -v, psql --version |
Node 25.9, pnpm 11.1, PostgreSQL 17.9 + pgvector 0.8.2 (dev DB), Playwright Chromium, pandoc/weasyprint. |