Un mini-cloud distribué, fédéré entre amis,
construit chez nous — entièrement autofinancé.
Tu veux monter un cluster Kafka sur 3 machines physiquement séparées, pour comprendre comment la réplication gère les partitions réseau. Tu as le choix entre :
3 VMs × 10€/mois = 30€ qui partent en fumée dès que tu arrêtes d'expérimenter. Et ce ne sont pas vraiment tes machines.
Une seule machine = une seule box = pas vraiment distribué. Les vraies pannes réseau n'arrivent jamais.
3h à configurer WireGuard, ACLs, règles firewall… et ça casse dès qu'une box redémarre.
Ce n'est pas l'argent, c'est le frottement. À force, on n'expérimente plus.
On mutualise nos machines. On les relie par un réseau chiffré invisible d'internet. On expose une API simple qui crée des VMs réparties sur plusieurs villes, en quelques secondes.
# Depuis ton laptop $ curl -X POST https://api.chervoisin.local/vms \ -d '{"count": 3, "cpu": 1, "ram": 1024, "spread": true}' → VM-1 créée à Lyon (chez Pierre) → VM-2 créée à Paris (chez Jacques) → VM-3 créée à Nantes (chez Jean) → Mesh établi · SSH prêt en 45 s
3 brokers, 3 villes, cluster multi-DC en 5 minutes.
Vraie partition réseau. Élection de leader, logs authentiques. Impossible sur Docker Compose.
VMs détruites automatiquement. Aucune trace, aucun coût.
Tester Kubernetes sur un seul hôte, ce n'est pas tester Kubernetes. Ici, les latences sont réelles, les pannes le sont aussi.
Pour nos workshops et nos formations : faire vivre à des étudiants la création d'un vrai cluster multi-sites, en direct.
Bots Discord, APIs perso, Nextcloud, Git privé… on arrête de payer des VPS inutiles chez OVH ou Hetzner.
Partager, s'entraider, monter en compétences ensemble. La techno n'est qu'un prétexte.
Un Proxmox VE par site (un laptop recyclé typiquement), derrière la box du membre. Une LXC Debian expose une API locale qui commande Proxmox.
Tunnels WireGuard directs entre toutes les machines. Coordination via un Headscale auto-hébergé. MagicDNS pour manipuler des noms, pas des IPs.
Une API Express + Postgres sur le VPS gratuit. Auth OAuth, quotas, TTL. Aucun état critique : si elle tombe, les VMs continuent.
Le découplage = la résilience. Un site qui tombe ne casse pas les autres. L'orchestrateur qui tombe ne casse pas les VMs déjà créées.
3 machines, 3 maisons, 3 box internet. On veut que :
Nos box font du NAT : elles masquent les machines internes derrière une IP unique. Par défaut, deux machines derrière deux box ne peuvent pas se voir directement. Comme deux personnes dans deux immeubles sans interphone.
« Un standardiste vs un appel direct sur portable. » La même différence.
Headscale = l'accueil d'un hôtel. Il sait qui est dans quelle chambre et confirme ton identité. Mais il n'écoute jamais ce que tu dis dans ta chambre.
Clients Tailscale officiels (qualité pro, open source) + notre propre Headscale (contrôle total, 0€).
# Scan des ports classiques $ nmap 82.45.xx.xx (box de Pierre) port 22 → closed / filtered port 80 → closed / filtered port 443 → closed / filtered port 3306→ closed / filtered port 8006→ closed / filtered ⛔ RIEN. Mur. Silence radio.
# On utilise le nom MagicDNS $ ssh vm-pierre-042 Welcome to Ubuntu 24.04 LTS Last login: today from 100.64.0.15 vm-pierre-042 $ curl postgres-jean:5432 ✓ connexion établie (WireGuard) ✓ Communication fluide et chiffrée
Les tunnels WireGuard ne sont pas en attente comme un port ouvert classique. Ils sont établis à la demande, à partir d'une connexion sortante initiée par la machine elle-même. Les portes restent fermées de l'extérieur ; le trafic revient par le chemin qu'il a lui-même creusé.
Standard du homelab 2026. Gratuit, mature, API REST propre, cloud-init natif pour injecter config et clés SSH.
Serveur open source self-hosted + les clients officiels de qualité. Gratuit, illimité, contrôle total.
Framework de référence, surface d'attaque minimale, correspond à nos compétences. Express-rate-limit, Helmet, CORS.
Users, quotas, VMs actives, historiques. SQLite suffirait au début mais Postgres nous donne de la marge.
Gratuit à vie. ARM 2CPU / 8Go RAM. 10 To de trafic mensuel inclus. Backup : Hetzner ~4€/mois.
Aucun mot de passe à gérer, aucune base utilisateurs à protéger. Passport.js côté Express. Un clic pour s'inscrire.
Chaque brique est un choix délibéré. Pas de dépendance propriétaire, pas de SaaS obligatoire. Tout peut être remplacé si besoin.
3 brokers, un par site. Couper une box pour observer l'élection de leader. Vrais timeouts, pas une simulation Docker.
1 control plane + 2 workers, un par ville. Kubernetes replanifie les pods automatiquement quand tu coupes un worker.
chervoisin net block --from lyon --to paris — vois le split-brain d'un cluster MongoDB. Impensable sur AWS.
C'est la capacité à injecter des pannes réseau réelles et contrôlées entre sites physiquement séparés. Aucun cloud public ne te laisse faire ça.
chervoisin vms create --user $student --count 3 --ttl 2d
10 environnements isolés, ACLs strictes. Tout supprimé auto à la fin.
Bot Discord, API Express, petit site. VMs persistantes via MagicDNS. Fini les VPS qui tournent à 1%.
chervoisin vms create --name test-clickhouse --ttl 4h
Tester une techno sans polluer ton Proxmox. 4h après : plus rien.
Dans un workshop, les étudiants manipulent du réel, pas une simulation. Ils voient une vraie partition réseau, débuggent une vraie panne. Ça change tout.
| Ressource | Quota |
|---|---|
| CPUs / threads simultanés | 8 threads |
| RAM simultanée | 16 Go |
| Stockage total | 100 Go |
| Nombre de VMs simultanées | 10 |
| Durée de vie max par VM | 30 jours |
Plus tu mets de matos dans le pot commun, plus tu récupères de droits. Un membre qui apporte 2 laptops double son quota.
| Serveur central (Oracle Free) | 0 € |
| Headscale + Tailscale | 0 € |
| HTTPS (Let's Encrypt) | 0 € |
| Électricité (laptop recyclé 20W) | ~ 3,6 €/mois |
| Total / membre | ~ 3,6 €/mois |
| 3 VMs 1 CPU / 1 Go (DigitalOcean) | ~ 45 €/mois |
| Bande passante inter-régions | ~ 10 €/mois |
| Stockage persistant | ~ 10 €/mois |
| Total cloud équivalent | 60–80 €/mois |
| Sur un an | 720 – 960 € |
Aucun projet n'est parfait. Voici ce que Cher Voisin n'est pas, et ce qu'on surveille.
Choix du matos (recyclage idéal), installation Proxmox, configuration box, template Ubuntu cloud-init. Demi-journée par personne. Un guide détaillé est fourni. On attend que tout le monde soit prêt.
Headscale sur Oracle, clients Tailscale sur les 3 Proxmox, API locale Express, orchestrateur central. Premier curl qui crée 3 VMs sur 3 sites et SSH fonctionne.
Next.js pour le front, OAuth GitHub+Google, ACLs par utilisateur, TTL auto, Prometheus+Grafana. C'est là que ça devient beau.
Templates pré-configurés (Kafka, K8s…), étude des options d'exposition publique (Cloudflare Tunnels, reverse proxy partagé), premières démos à nos entourages.
Scale à 6-10 sites, self-hosted DERP, CI/CD intégré, marketplace de stacks partagées. Pas de date fixée.
Le projet n'attend pas. On peut démarrer dès qu'on est 3 matériellement prêts.
Sur le groupe WhatsApp qu'on va créer. Tout se discute.
Pas d'engagement. Tu peux récupérer ta machine à tout moment.
Laptop recyclé. 16 Go RAM min. Phase 0 : demi-journée.
« Le meilleur cloud, c'est celui qu'on construit ensemble, chez nous, pour apprendre et créer. »