A VM with Docker Compose
The default target, and the cheapest. The whole stack runs on one Linux server you rent, and the whole security model holds: the internal networks, the read-only containers, the database roles and Cerbos.
What you need
Section titled “What you need”- A Linux VM with Docker Engine 28 or newer, local NVMe and enough memory for your data. What it costs sizes one for your data and questions, and How to deploy names servers that fit.
- A domain name pointing at the server.
- Somewhere off the server for backups, such as a Hetzner Storage Box.
How it will go
Section titled “How it will go”- In your project,
mb buildbuilds its images and writes the compose configuration. - On the server,
docker compose up -dstarts the stack. Migrations apply themselves at start. - Caddy sits in front of the api and gets a TLS certificate for your domain.
- Your secrets reach the containers from your secrets provider;
secrets.ymlnames them, andmb secrets setstores them. - Merging to
maindeploys a change; your agent checks production read-only withmb verify.
The end-to-end test runs this path on every change, so it is the best tested of the targets.