🚀 Docker Swarm sur Hetzner Cloud avec Terraform Cloud
Infrastructure 100% automatisée pour déployer un cluster Docker Swarm production-ready sur Hetzner Cloud via Terraform Cloud UI.
⚡ Quick Start (5 minutes)
- Token Hetzner : console.hetzner.cloud → Security → API Tokens → Generate
- Terraform Cloud : app.terraform.io → New Workspace →
docker-swarm-hetzner - Variables : HCLOUD_TOKEN dans Environment Variables (Sensitive ✓)
- Upload : Tous les fichiers → Upload configuration
- Deploy : Start new run → Confirm & Apply
C'est fait ! Votre cluster est prêt en 5 minutes.
💰 Coût Total : ~46€/mois
| Ressource | Specs | Prix |
|---|---|---|
| 3 Managers | CX21 (2vCPU, 4GB) | 17.49€ |
| 3 Workers | CX11 (1vCPU, 2GB) | 9.87€ |
| Load Balancer | LB11 | 5.83€ |
| Volumes | 230GB | 9.20€ |
| Floating IPs | 3x IPv4 | 3.57€ |
🎯 Ce qui est déployé
- ✅ Cluster Docker Swarm haute disponibilité
- ✅ Load Balancer avec health checks
- ✅ Monitoring : Prometheus + Grafana + Portainer
- ✅ Réseau privé sécurisé (gratuit)
- ✅ Firewall configuré automatiquement
- ✅ Backups quotidiens automatiques
- ✅ 100% Infrastructure as Code
📚 Documentation
Guides Essentiels
- 📖 Quick Start Guide - Démarrage en 5 minutes
- 📖 Guide Terraform Cloud UI - Guide visuel complet
- 📖 Configuration Simple - Étapes détaillées
Ressources
- 💰 Calculateur de Coûts - Estimez votre budget
- 📊 Exemple de Configuration - Variables personnalisables
🏗️ Structure du Projet
.
├── README.md # Ce fichier
├── main.tf # Configuration Terraform Cloud
├── variables.tf # Variables Hetzner
├── outputs.tf # Outputs (IPs, URLs, etc.)
├── resources.tf # Ressources Hetzner
├── terraform.auto.tfvars # Configuration par défaut
├── terraform.tfvars.example # Exemple de configuration
├── docs/ # Documentation complète
│ ├── QUICK-START.md # Guide rapide
│ ├── TERRAFORM-CLOUD-UI-GUIDE.md # Guide UI détaillé
│ ├── README-TERRAFORM-CLOUD.md # Configuration Terraform Cloud
│ └── COST-CALCULATOR.md # Calculateur de coûts
├── scripts/ # Scripts d'initialisation
│ ├── cloud-init-manager.yaml # Init managers
│ └── cloud-init-worker.yaml # Init workers
└── examples/ # Exemples
└── deploy-stack.sh # Déploiement d'application
🔧 Configuration Minimale
Variables Requises (dans Terraform Cloud UI)
# Environment Variables
HCLOUD_TOKEN = "votre-token-hetzner" # Sensitive ✓
# Terraform Variables
terraform_cloud_organization = "votre-org"
terraform_cloud_workspace = "docker-swarm-hetzner"
hcloud_token = "votre-token-hetzner" # Sensitive ✓
Variables Optionnelles
| Variable | Défaut | Description |
|---|---|---|
manager_count |
3 | Nombre de managers |
worker_count |
3 | Nombre de workers |
location |
nbg1 | Datacenter (nbg1, fsn1, hel1) |
manager_server_type |
cx21 | Type serveur managers |
worker_server_type |
cx11 | Type serveur workers |
🌐 Accès aux Services
Après déploiement, récupérez les URLs dans Terraform Cloud → Outputs :
- Application :
http://[load-balancer-ip] - Portainer :
http://[manager-ip]:9000 - Grafana :
http://[manager-ip]:3000(admin/admin) - Prometheus :
http://[manager-ip]:9090
🚢 Déployer une Application
# SSH vers le manager (clé dans Outputs)
ssh -i swarm-key.pem root@[manager-ip]
# Déployer une stack
docker stack deploy -c docker-compose.yml myapp
# Vérifier
docker service ls
Ou utilisez le script fourni :
./examples/deploy-stack.sh
💡 Points Forts
Pourquoi Hetzner ?
- 10x moins cher que les autres cloud providers
- Performance : AMD EPYC, NVMe SSD, 25 Gbit/s
- Écologique : 100% énergie renouvelable
- Européen : RGPD compliant, datacenters EU
- Simple : Interface claire, excellente documentation
Pourquoi cette solution ?
- 100% UI : Pas de terminal nécessaire
- Idempotent : Terraform gère l'état
- Production-ready : HA, monitoring, backups
- Scalable : Ajustez les variables pour grandir
- Sécurisé : Firewall, réseau privé, fail2ban
🔄 Opérations Courantes
Scaling
# Dans Terraform Cloud Variables
worker_count = 5 # Au lieu de 3
# → Start new run → Apply
Mise à jour
# Drain node
docker node update --availability drain worker-1
# Update via Terraform
# Reactivate
docker node update --availability active worker-1
Monitoring
- Grafana dashboards pré-configurés
- Métriques Prometheus
- Logs centralisés
🆘 Support
📝 License
MIT - Utilisez librement cette infrastructure !
💡 Astuce : Commencez avec la configuration par défaut (46€/mois) et ajustez selon vos besoins.
🎁 Bonus : Hetzner offre 20€ de crédit aux nouveaux comptes !
⚡ Performance : Infrastructure équivalente coûterait 300-500€/mois ailleurs.