Demo SaaS hosting
The public Demo SaaS runs on a single Hetzner Cloud ARM server (CAX31,
8 vCPU / 16 GB) using the same docker-compose.yml stack as a self-hosted
production install, fronted by a TLS-terminating reverse proxy on the host.
An earlier version of this page described a GCP deployment (Cloud Run +
Cloud SQL + Memorystore) driven by a terraform/ module. That plan was
retired before launch — the worker's long-running scan processes and shared
workspace volume do not fit serverless runtimes, and the projected cost was
several times higher. The Terraform module was never shipped: there is no
terraform/ directory in this repository.
What runs where
| Concern | Demo SaaS choice |
|---|---|
| Compute | One Hetzner CAX31 (ARM64) VPS |
| Orchestration | docker-compose.yml — the same production bundle documented in Install |
| TLS / ingress | Reverse proxy on the host (ports 80/443) |
| Backups | Daily scripts/backup.sh via a systemd timer, shipped off-host |
| Demo data reset | Nightly demo re-seed via a systemd timer |
Because the Demo SaaS is a stock docker-compose install, there is no separate cloud-specific runbook to follow: the installation guide, upgrade guide, and backup/restore guide apply as-is. A dedicated operator runbook covering the Hetzner-specific pieces (provisioning, cloud-init, systemd timers, off-host backup) is being prepared and will be linked here when it lands.
Demo accounts
Seeded demo credentials and the nightly reset behaviour are documented in Live demo. The demo organization is recreated from scratch every night — anything you create there is discarded.
Production deployments
The Demo SaaS exists to showcase the product. For real data, deploy on-premises with docker-compose or on Kubernetes with the Helm chart.