Skip to main content
← Projects

Case study

Terramine

It started as “let's host Minecraft” and somehow became Terraform, Docker, automatic TLS, Cloudflare DNS, and off-site backups. At least rebuilding the server is easy now.

By Updated
What was going on
The original plan was to put a Minecraft server online for friends. Clicking through cloud dashboards worked once, but it left no reliable way to rebuild the thing when I inevitably broke it.
What I did
I described the GCP infrastructure in Terraform, wired up Cloudflare DNS, put Caddy in front of the web panel, and ran the services with Docker Compose. Backups go to R2 because trusting one VM with a Minecraft world feels brave in the wrong way.
How it turned out
The server can now be rebuilt from code, the web panel has proper HTTPS, and the world has an off-site restore path. A completely reasonable amount of infrastructure for placing blocks with friends.

Technical details

  • Provisioned the VM, network, firewall rules, static IP, DNS records, and SRV record as Terraform-managed infrastructure.
  • Kept the Crafty admin service private behind Caddy while supporting HTTPS and live WebSocket console traffic.
  • Made bootstrap and restore operations repeatable, with scheduled backups copied away from the VM to R2.
TerraformGCPDockerCaddyCloudflare