Some checks are pending
offline / test (push) Waiting to run
Add missing package READMEs, expand Sphinx to all runtime modules, publish a LaTeX/PDF README book, and add verae-ops for Docker, Proxmox, VMs, dedicated hardware, and service linking. Catalog defaults to public PDF links for each module README and samples.
1.7 KiB
1.7 KiB
5. Dedicated hardware
NS1-style: a box that already runs NATS on 127.0.0.1:4222 (never a public bind), plus optional extra hosts for SSH workers.
This host (control + edges)
- Node 22+, git (SSH port 2223 to Forgejo).
nats-server -jslistening 127.0.0.1:4222 only (cluster later on a private NIC).- Clone
zappier-edge,verae-middleware,verae-fleet. - systemd units (below) or
verae-fleet servewhich keepFloor-spawns workers. - Caddy/nginx for public HTTPS to
:3000/:3100. - Operator console:
127.0.0.1:3850— SSH tunnel if you are off-box:ssh -L 3850:127.0.0.1:3850 -L 4222:127.0.0.1:4222 user@ns1
systemd (middleware)
[Unit]
Description=verae-middleware
After=network.target nats.service
[Service]
WorkingDirectory=/opt/verae/verae-middleware
Environment=PORT=3100
Environment=NATS_ENABLED=true
Environment=NATS_URL=nats://127.0.0.1:4222
Environment=VERAE_API_BASE_URL=https://api.veraetime.net
ExecStart=/usr/bin/node src/index.js
Restart=on-failure
User=verae
[Install]
WantedBy=multi-user.target
zappier-edge similar with PORT=3000 and WorkingDirectory of that clone.
Extra machines
Add to fleet machines.json:
{
"id": "ns1",
"kind": "ssh",
"user": "marchon",
"host": "70.88.205.138",
"port": 22,
"identityFile": "~/.ssh/id_ed25519",
"capacity": 8,
"roles": ["tree-node", "archive-worm"]
}
Never commit private key bytes. Optional machines.secrets.json is gitignored.
NATS 3-server cluster on metal
Three boxes, private IPs, same cluster_name, routes to each other, listen on the private IP only. Clients (NATS_URL) list all three URLs. Target architecture: https://zapier.georgelambert.org/overview/03-nats-cluster.pdf