This section is being actively rewritten as part of an infrastructure migration. It documents the new Infrastructure as Code setup as it exists today, but some pages may still be incomplete or change as the migration continues. The migration is expected to be complete by 28 August 2026, at which point the underlying Proxmox host itself will be upgraded.
The previous, pre-migration infrastructure docs are kept for historical reference in Archive → Infrastructure (Legacy).
Infrastructure Overview
ABAIR's servers are managed as code, in the infrastructure-automation repository. Instead of clicking through the Proxmox UI or SSHing in to hand-install packages, changes to the fleet are made by editing that repo and running a make target.
The three components
- Terraform (
terraform/hetzner-main/) provisions the raw Virtual Machines on the Proxmox cluster — it clones them from a shared template and sets their hardware, networking, and Cloud-Init configuration. Provisioning is a rare, deliberate action, separate from day-to-day configuration changes. See Provisioning with Terraform. - Ansible (
ansible/) configures the software running inside each VM (and the two physical/external hosts) — installing Docker, deploying application stacks, and setting up CI/CD runners. See Configuring with Ansible. - Make (root
Makefile) wraps Terraform and Ansible so the whole fleet, or any single server, can be provisioned and configured with one command. See Common Operations.
What's managed this way
Everything under Servers: the Proxmox VMs (webserver, docker-build, synthesis-test, observability, api-gateway, services-user, services-staff), plus two hosts outside the Proxmox cluster — the Amergin GPU server and the Puca Raspberry Pi.
The legacy monolithic services VM (10.0.0.2) predates this setup and is being decommissioned as its apps finish moving onto services-user / services-staff; it currently still hosts the shared Docker registry.
Where to go next
- New to the infrastructure? Start with Getting Started for access and tooling prerequisites.
- Looking for a specific server? See the Server List.
- Want to make a change (add a VM, deploy a new app, open a port)? See Modifying Infrastructure.