# verae-ops — install, run, maintain How to stand up Verae Time × Zapier on **Docker**, **Proxmox**, **generic VMs**, or **dedicated hardware**, and how to **link dependent services**. **Forgejo:** https://git.georgelambert.org/marchon/verae-ops **Clone:** `ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git` **Catalog:** https://zapier.georgelambert.org/packages/verae-ops/README.pdf **System map:** https://zapier.georgelambert.org/overview/README.pdf This is the operations repo. Application code lives in the other independent git repositories. ## Reading order 1. [01-dependencies.md](01-dependencies.md) — what must exist, who talks to whom 2. [02-docker.md](02-docker.md) — Compose (NATS 3-node cluster + HTTPS edges) 3. [03-proxmox.md](03-proxmox.md) — LXC / QEMU VMs 4. [04-virtual-servers.md](04-virtual-servers.md) — cloud or hypervisor VMs 5. [05-dedicated-hardware.md](05-dedicated-hardware.md) — bare metal (NS1-style) 6. [06-linking-services.md](06-linking-services.md) — env vars, URLs, replica floors 7. [07-maintenance.md](07-maintenance.md) — upgrade, backup, fleet, NATS Public PDFs of the same files: `https://zapier.georgelambert.org/packages/verae-ops/.pdf`. ## Non-negotiables | Rule | Why | |------|-----| | Zapier cloud → **HTTPS only** (zappier-edge) | Never NATS, never `api.veraetime.net` | | NATS binds **loopback or a private docker/VM net** | Not on the public NIC | | Tree-node **min 3**, pause does not count | Bulk Merkle lookups | | Private keys stay on disk; git stores **paths** | `machines.json` `identityFile` | | Operator console is **loopback** `:3850` | Not a public site | ## Quick lab (one machine) ```bash git clone ssh://git@git.georgelambert.org:2223/marchon/verae-ops.git cd verae-ops docker compose up --build ``` Then: zappier http://127.0.0.1:3000/ middleware http://127.0.0.1:3100/health NATS monitoring http://127.0.0.1:8222/ Production layout is three NATS nodes + fleet-spread workers; see [02-docker.md](02-docker.md) and [05-dedicated-hardware.md](05-dedicated-hardware.md).