]> Repos - server-iac/summary
 
descriptionTerraform + Ansible capture of this server's setup (mail/git/web)
last changeFri, 17 Jul 2026 19:54:46 +0000 (19:54 +0000)
readme

server-iac

Terraform + Ansible for reproducing the setup of the mail/git/web server currently running as ubuntu-us-ord (Linode, us-ord), serving andrewgundersen.net and crimata.com.

This captures the parts of the box that are pure configuration. It does not capture secrets — see below.

Layout

terraform/ Provisions the Linode itself (size, region, image, networking) ansible/ Installs and configures software on a provisioned box

What's captured

What's deliberately NOT captured (secrets)

These can't be "replayed" from config — they're per-identity secrets that either need fresh generation per node or a separate secure transfer:

Multi-region context

This repo exists because of a discussion about whether it'd ever make sense to run this setup in more than one region for durability. The honest breakdown of what that would actually require:

None of that is implemented yet. This repo is step one: capture the single node's setup so it's reproducible, before deciding whether multi-node is actually worth the added complexity.

Client routing decision

For directing clients to the nearest node once there's more than one, decided on GeoDNS first, anycast later if needed:

Chose GeoDNS for now because it's proportionate to actual scale (one user, two mailboxes) - revisit anycast only if a real need for sub-TTL failover shows up, not preemptively.

shortlog
8 days ago Andrew GundersenFix 5 bugs found via dry-run provision of a real Linode main
8 days ago Andrew GundersenDocument GeoDNS-first client routing decision
8 days ago Andrew GundersenInitial Terraform + Ansible capture of the mail/git...
heads
8 days ago main