cluster en ligne · servi par ce homelab

Un homelab production-grade
sur trois Raspberry Pi.

Pas un labo qui prend la poussière : un vrai cluster Docker Swarm qui héberge des applications publiques — haute dispo jusqu'aux bases de données, SSO, secrets pilotés, sauvegardes chiffrées hors-site, observabilité complète, le tout en infrastructure-as-code. Cette page elle-même tourne dessus.

3 nœuds, tous managers
14 stacks en production
5 bases en cluster Patroni
~70 secrets pilotés par Bitwarden
0 port ouvert sur la box
🐳

Docker Swarm HA

3 nœuds tous managers (quorum 2/3), ingress actif/actif, apps qui flottent — validé par une matrice de 6 drills (sortie propre + crash, sur chaque nœud).

🐘

Bases HA — Patroni

Une base Postgres dédiée par app, chacune en cluster 2 membres avec failover automatique (etcd + HAProxy). Perdre un nœud ne coupe ni ne perd les données.

🔒

0 port ouvert

Tout passe par un Cloudflare Tunnel. Aucune redirection de port sur la box.

🗝️

Secrets : un seul master

Bitwarden Secrets Manager pilote ~70 secrets : plus de mot de passe en clair dans les .env, rotation en 3 commandes, reprise = un rendu.

🛡️

IPS + WAF

CrowdSec sur l'ingress : réputation d'IP + pare-feu applicatif (CRS) devant les apps publiques.

🪪

SSO Authelia

Authentification unique + 2FA et fournisseur OIDC pour les apps maison — répliqué, lui aussi.

💤

Scale-to-zero

Sablier endort les apps inactives et les réveille à la demande, page d'attente incluse.

🚀

Déploiement continu

GitHub Actions → n8n → R2 : cette vitrine se déploie toute seule à chaque push, sans coupure.

💾

Backups offsite

restic chiffré → Cloudflare R2, dumps Postgres applicatifs, planifiés et vérifiés.

📊

Observabilité

Métriques + logs + traces (Prometheus, Grafana, Loki, Tempo) — et la veille des releases qui pousse sur le téléphone via ntfy.

Le carnet de bord

Retours d'expérience, pannes disséquées et choix d'architecture — appris en cassant des trucs, puis en les réparant.

Tous les articles →