Stack technique
Cette infrastructure est hybride : services personnels auto-hébergés sur une VM ARM64 à domicile, site portfolio déployé sur un VPS Scaleway. Les outils sont intégralement open source — auditables, sans dépendance propriétaire, représentatifs des standards en entreprise. L'hébergement cloud repose sur Scaleway, acteur européen : un compromis assumé entre souveraineté des données et maîtrise des coûts. Cette page documente l'architecture et les choix qui la composent.
Vue d'ensemble
Internet
│
├── kiwinet.me → VPS Scaleway (Traefik + Astro/Nginx, CI/CD GitHub Actions)
│
└── freebox.kiwinet.me → Traefik VM (reverse proxy + SSL Let's Encrypt)
├── status.kiwinet.me → Uptime Kuma
├── grafana.kiwinet.me → Grafana
├── plex.kiwinet.me → Plex Media Server
├── hub.kiwinet.me → Home Assistant
├── calibre.kiwinet.me → Calibre-Web
├── komga.kiwinet.me → Komga
└── traefik.kiwinet.me → Dashboard Traefik (auth-basic)
│
└── minecraft.kiwinet.me:25565 (TCP passthrough Traefik) L'infrastructure est hybride : kiwinet.me est hébergé sur un VPS Scaleway (souveraineté européenne, CI/CD automatisé), tandis que tous les services personnels et d'observabilité tournent sur une VM auto-hébergée. Traefik gère le routage, le SSL automatique et l'isolation des services côté VM. Minecraft transite via Traefik en mode TCP passthrough — le trafic est routé sans déchiffrement TLS.
Architecture détaillée
Internet │ ├── :80/:443 → kiwinet.me → VPS Scaleway │ └── Traefik → Container kiwinet-web (Astro/Nginx) │ ├── :80/:443 → freebox.kiwinet.me → Traefik VM │ ├── status.kiwinet.me → Container uptime-kuma │ ├── grafana.kiwinet.me → Container grafana │ ├── plex.kiwinet.me → Container plex (Plex Media Server) │ ├── hub.kiwinet.me → Home Assistant (network_mode: host) │ ├── calibre.kiwinet.me → Container calibre-web │ ├── komga.kiwinet.me → Container komga │ └── traefik.kiwinet.me → Dashboard Traefik (auth-basic) │ ├── :25565 → minecraft.kiwinet.me → Container minecraft (TCP brut, passthrough Traefik) ├── :22 → SSH (accès VM, clé ed25519) └── :XXXXX → WireGuard VPN (accès réseau local chiffré, clé par appareil)
L'accès à l'interface d'administration de la Freebox ne passe pas par le réseau public. Il transite exclusivement par un tunnel WireGuard — zéro surface d'attaque, authentification par clé, clé distincte par appareil.
Les couches de la stack
Architecture hybride : VM Debian GNU/Linux ARM64 auto-hébergée pour les services personnels, VPS Scaleway (fr-par-1) pour le site portfolio. Traefik comme reverse proxy unique sur chaque hôte, SSL Let's Encrypt automatique via HTTP Challenge. WireGuard pour l'accès sécurisé au réseau local. Provisioning automatisé via Ansible (dual-target VM + VPS) et Terraform pour l'infrastructure cloud Scaleway.
Pipeline GitHub Actions : build Astro → image Docker linux/amd64 → push GHCR → déploiement SSH sur VPS Scaleway (port dédié) → Docker Compose. Migration de ARM64 vers AMD64 réalisée lors du passage au VPS — la contrainte d'architecture est documentée comme décision technique.
Deux niveaux distincts : statut public (Uptime Kuma, badges live, alertes Discord) et observabilité interne (Prometheus, cAdvisor, Node Exporter, Loki, Promtail, Grafana). La séparation externe/interne est un choix délibéré de maturité DevOps.
Récapitulatif des outils
| Rôle | Outil | Pourquoi ce choix | Repo |
|---|---|---|---|
| Reverse proxy | Traefik v3 | Natif Docker, SSL auto, standard conteneurs | kiwinet-services |
| SSL | Let's Encrypt | Gratuit, automatique, reconnu universellement | kiwinet-services |
| VPN | WireGuard | Zéro exposition, clé par appareil | kiwinet-infra-ansible |
| Provisioning VM/VPS | Ansible | Idempotent, dual-target VM + VPS, standard DevOps | kiwinet-infra-ansible |
| Infrastructure cloud | Terraform + Scaleway | IaC reproductible, souveraineté européenne | kiwinet-infra-cloud |
| Framework front | Astro | Statique, léger, image Docker ~15 Mo | kiwinet-web |
| Serveur fichiers | Nginx Alpine | Minimaliste, multi-stage build | kiwinet-web |
| Registry | GHCR | Cohérence écosystème GitHub | kiwinet-web |
| CI/CD | GitHub Actions + SSH | Auditable, maîtrise des secrets | kiwinet-web |
| Statut public | Uptime Kuma | Page publique + alertes Discord | kiwinet-observability |
| Métriques | Prometheus + cAdvisor + Node Exporter | Standard industrie | kiwinet-observability |
| Logs | Loki + Promtail | Cohérence Grafana Labs | kiwinet-observability |
| Dashboards | Grafana | Visualisation unifiée | kiwinet-observability |
État des services
Badges live — état en temps réel depuis Uptime Kuma.