Skip to main content
How to stand up an environment (staging or production) from this repository, check it, upgrade it and take it down. Follow the pages in this order: Before production takes its first real project, every item of production-readiness.md is run and signed off. local-converge.md is the stand-in that runs the same roles against four to seven Debian 13 containers on one machine; everything below was first proven there.

Status on 2026-11-13

Production is being created in Microsoft Azure, region Sweden Central (EU), with DNS at Cloudflare; there is no separate staging (owner decision of 2026-11-13). Its state storage, network, addresses, backup account and CAA records exist; the five VMs wait for Azure capacity (opentofu.md section 3.8). PostgreSQL 18.7 is pinned. The first converge also needs a signed release and input I8 (production-readiness.md). Each page says which of its steps were run locally and which have never run. Expected outputs of steps that have never run are taken from the code that prints them (the Makefile, scripts and playbooks), not from a run, and are marked that way. Plan inputs are written as <input I4> and so on. Nothing in angle brackets is a real value. Operator procedures after deployment are in ../runbooks/.