58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
# 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
|
|
- [x] Terraform infrastructure code
|
|
- [x] Ansible inventory and playbooks
|
|
- [x] Create S3 buckets (hel1-primary, fsn1-secondary)
|
|
- [x] Provision servers via Terraform
|
|
- [ ] Backup all services from bare metal
|
|
|
|
### Phase 1: Core Infrastructure
|
|
- [x] Deploy WireGuard VPN on ops-server
|
|
- [x] Deploy Traefik reverse proxy
|
|
- [ ] Deploy monitoring stack (Grafana, Prometheus, Loki)
|
|
|
|
### Phase 2: Git & CI/CD
|
|
- [x] Migrate Forgejo from bare metal
|
|
- [x] Deploy Forgejo Runner on services-server
|
|
|
|
### Phase 3: Media & Storage
|
|
- [x] 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
|