iac/README.md
2025-11-04 14:23:16 +02:00

1.8 KiB

asxp.io Infrastructure

Infrastructure as Code for asxp.io servers managed via Terraform, Ansible, and Forgejo CI/CD.

Servers

Server Type vCPU RAM Services
asxpio-ops CX22 2 4GB traefik, forgejo, grafana, prometheus, loki, static_sites
asxpio-services CX43 8 16GB forgejo_runner, immich, minecraft, valheim, factorio, prosody, coturn

Directory Structure

  • terraform/ - Cloud infrastructure provisioning (Hetzner Cloud)
  • ansible/ - Server bootstrap and configuration management
  • services/ - Docker Compose files for container orchestration
  • .forgejo/workflows/ - CI/CD pipeline automation (planned)

Migration TODO

Phase 0: Preparation

  • Terraform infrastructure code
  • Ansible inventory and playbooks
  • Create S3 buckets (hel1-primary, fsn1-secondary)
  • Provision servers via Terraform
  • Backup all services from bare metal

Phase 1: Core Infrastructure

  • Deploy WireGuard VPN on ops-server
  • Deploy Traefik reverse proxy
  • Deploy monitoring stack (Grafana, Prometheus, Loki)

Phase 2: Git & CI/CD

  • Migrate Forgejo from bare metal
  • Deploy Forgejo Runner on services-server

Phase 3: Media & Storage

  • Upload Immich photos to S3 (135GB)
  • Migrate Immich to services-server
  • Configure S3 geo-replication (hel1 → fsn1)

Phase 4: Gaming Services

  • Migrate Minecraft (20GB local + 80GB S3 backups)
  • Migrate Valheim (9.5GB)
  • Migrate Factorio (31MB)

Phase 5: Communication

  • Migrate Prosody XMPP
  • Migrate Turnserver

Phase 6: Final Services

  • Migrate static sites (asxp.io, czsk.it)
  • Configure automated backups to S3
  • DNS cutover and validation
  • Decommission bare metal (after 30 days)

Later

  • Setup Terraform to manage DNS