Part of #1029.
Ship a Terraform config that provisions a production-ready Hetzner Cloud VPS with Docker pre-installed, a persistent data volume, and a firewall — so operators can go from zero to running docker compose up with a single terraform apply.
Scope:
terraform/main.tf: hcloud_server (ubuntu-24.04, cx22 default), hcloud_firewall (22/80/443/8787), hcloud_volume (20GB ext4), hcloud_ssh_key, cloud-init installs Docker via official apt repo
terraform/variables.tf: hcloud_token (sensitive), ssh_public_key, server_type, location, volume_size_gb, admin_ip_allowlist
terraform/outputs.tf: server_ipv4, server_ipv6, ssh_command, volume_device
- hcloud provider version
~> 1.49; Terraform ≥ 1.6
terraform/ added to .gitignore patterns for *.tfvars and .terraform/
Part of #1029.
Ship a Terraform config that provisions a production-ready Hetzner Cloud VPS with Docker pre-installed, a persistent data volume, and a firewall — so operators can go from zero to running
docker compose upwith a singleterraform apply.Scope:
terraform/main.tf: hcloud_server (ubuntu-24.04, cx22 default), hcloud_firewall (22/80/443/8787), hcloud_volume (20GB ext4), hcloud_ssh_key, cloud-init installs Docker via official apt repoterraform/variables.tf: hcloud_token (sensitive), ssh_public_key, server_type, location, volume_size_gb, admin_ip_allowlistterraform/outputs.tf: server_ipv4, server_ipv6, ssh_command, volume_device~> 1.49; Terraform ≥ 1.6terraform/added to .gitignore patterns for*.tfvarsand.terraform/