Deployment¶
Placeholder — to be expanded from the Hetzner deployment runbook in the internal repo.
Topology¶
A production deployment runs every service inside Docker Compose, fronted by
a caddy reverse proxy that terminates TLS for all customer-facing
hostnames:
cyberarmor.ai— marketing siteapp.cyberarmor.ai— customer portaladmin.cyberarmor.ai— admin dashboarddocs.cyberarmor.ai— this sitesupport.cyberarmor.ai— support page
Backend service ports are bound to 127.0.0.1 so only Caddy is exposed to
the public network.
Steps¶
- Provision a hardened Ubuntu 22.04+ host
- Point DNS A records for the five hostnames at the host
- Clone the repo and create
/etc/cyberarmor/demo.env(root-owned, mode 0600) -
Run the deploy script:
The script brings up the full Compose stack with the prod profile (which
activates Caddy and binds backend services to loopback).
TLS certificates¶
Caddy issues and renews Let's Encrypt certificates automatically. No certbot timer or systemd renewal hook is needed.