Stack technique

Cette infrastructure est entièrement auto-hébergée sur une VM ARM64 à domicile. Chaque outil a été choisi pour trois raisons majeures : open source, représentatif des standards en entreprise, et cohérent avec l'ensemble de la chaîne. Cette page a pour but de documenter l'architecture et les choix qui la composent.

Vue d'ensemble

Internet
  └── freebox.kiwinet.me (point d'entrée)
           └── Traefik (reverse proxy + SSL Let's Encrypt)
                    ├── kiwinet.me           → Kiwinet (Astro/Nginx)
                    ├── status.kiwinet.me    → Uptime Kuma
                    ├── grafana.kiwinet.me   → Grafana
                    ├── plex.kiwinet.me      → Container plex (Plex Media Server)
                    ├── hub.kiwinet.me       → Home Assistant
                    └── traefik.kiwinet.me   → Dashboard (auth-basic)
  └── minecraft.kiwinet.me:25565 (TCP passthrough Traefik)

Traefik est le point d'entrée unique de la VM : il gère le routage, le SSL automatique et l'isolation des services. Minecraft transite par Traefik en mode TCP passthrough — le trafic est routé sans déchiffrement TLS.

Architecture détaillée

Internet
  │
  ├── :80/:443  → freebox.kiwinet.me → Traefik
  │                                        ├── kiwinet.me / www       → Container kiwinet-web (Nginx)
  │                                        ├── traefik.kiwinet.me     → Dashboard Traefik (auth-basic)
  │                                        ├── plex.kiwinet.me        → Container plex (Plex Media Server)
  │                                        ├── hub.kiwinet.me         → Home Assistant (network_mode: host)
  │                                        ├── status.kiwinet.me      → Container uptime-kuma
  │                                        └── grafana.kiwinet.me     → Container grafana
  │
  ├── :25565    → minecraft.kiwinet.me → Container minecraft (TCP brut, passthrough Traefik)
  ├── :22       → SSH (accès VM, clé ed25519)
  └── :22121    → 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

Infrastructure

VM Debian GNU/Linux sur ARM64, auto-hébergée. Traefik comme reverse proxy unique, SSL Let's Encrypt automatique via HTTP Challenge. WireGuard pour l'accès sécurisé au réseau local.

TraefikLet's EncryptDockerWireGuardDebian ARM64
kiwinet-infra
CI/CD

Pipeline GitHub Actions : build Astro → image Docker multi-plateforme (linux/arm64 via Docker Buildx) → push GHCR → git pull sur la VM → déploiement Docker Compose. L'architecture ARM64 est traitée comme une contrainte de build démontrée, pas contournée.

GitHub ActionsDocker BuildxGHCRSSH deploylinux/arm64
kiwinet-web
Observabilité

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.

Uptime KumaPrometheusGrafanaLokicAdvisor
kiwinet-status · kiwinet-monitoring

Récapitulatif des outils

Rôle Outil Pourquoi ce choix Repo
Reverse proxy Traefik v3 Natif Docker, SSL auto, standard conteneurs kiwinet-infra
SSL Let's Encrypt Gratuit, automatique, reconnu universellement kiwinet-infra
VPN WireGuard Zéro exposition, clé par appareil kiwinet-infra
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-status
Métriques Prometheus + cAdvisor + Node Exporter Standard industrie kiwinet-monitoring
Logs Loki + Promtail Cohérence Grafana Labs kiwinet-monitoring
Dashboards Grafana Visualisation unifiée kiwinet-monitoring
Voir tous les repos sur GitHub →

État des services

kiwinet.me statut kiwinet.me
traefik.kiwinet.me statut traefik.kiwinet.me
status.kiwinet.me statut status.kiwinet.me
grafana.kiwinet.me statut grafana.kiwinet.me
plex.kiwinet.me statut plex.kiwinet.me
minecraft.kiwinet.me statut minecraft.kiwinet.me
hub.kiwinet.me statut hub.kiwinet.me

Badges live — état en temps réel depuis Uptime Kuma.