Validated against the module list in packages/ and
Forgejo repos.
| Door | Bind | Notes |
|---|---|---|
| Customer portal | access-web :3021/portal/ |
Static + /portal/api → loopback edge |
| Customer API | access-api :3022 |
|
| S2S leaf | access-leaf :3023 |
No billing subjects |
| Zapier | access-zapier :3024 |
Only Zapier HTTPS |
| Staff plane | access-staff :3025 |
After IAM |
| zappier-edge | loopback :3000 (NS1 all-in-one
:13000) |
Admin, Stripe, not a public portal |
| Operator console | fleet :3850 on 0.0.0.0 |
Pause/stop honored by keep |
| Staff IAM | :3028 |
Named users, roles, sessions |
| Keep | :3860 + watch :3861 +
guard.sh |
Restart unless paused/stopped |
verae-staff-iam, verae-staff-session,
verae-staff-uiverae-keepverae-bootstrap (clone + npm per server type;
scripts/host-deps.sh installs OS/Node/NATS)verae-uptime, verae-backup,
verae-deploy, verae-proxmox (LXC 510 on NS1
vmbr1)verae-nats-cluster (LXC 511–513 JetStream on
vmbr1)HTML and PDF catalog links are path-relative. Rsync
site/ to a new document root (for example
docs.verae-time.net) without rewriting files.
python3 scripts/rewrite-docs-host.py --site ./site --from https://zapier.georgelambert.org --to https://docs.verae-time.netbash packages/verae-bootstrap/scripts/host-deps.sh --type ns1-all-in-oneapi.veraetime.net
(MOCK_VERAE=false)push