Cher Voisin
Doc complet · 01 / 19 · ? pour l'aide
Présentation — Avril 2026

Cher
Voisin.

Un mini-cloud distribué, fédéré entre amis,
construit chez nous — entièrement autofinancé.

0€ / mois 3 sites physiques 100% open source
Le problème

Tester du distribué,
c'est toujours un mauvais deal.

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 :

Option A

Louer chez DigitalOcean

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.

Option B

Tout sur ton Proxmox local

Une seule machine = une seule box = pas vraiment distribué. Les vraies pannes réseau n'arrivent jamais.

Option C

Bricoler du VPN maison

3h à configurer WireGuard, ACLs, règles firewall… et ça casse dès qu'une box redémarre.

Le vrai coût

Ce n'est pas l'argent, c'est le frottement. À force, on n'expérimente plus.

La solution

Un cloud qu'on
construit ensemble, chez nous.

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.

0€
Abonnement cloud
0
Port ouvert sur nos box
100%
Open source
Contrôle et apprentissage
Démo mentale

À quoi ça ressemble,
en vrai ?

# 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
Étape 1

Installer Kafka

3 brokers, 3 villes, cluster multi-DC en 5 minutes.

Étape 2

Débrancher la box de Jacques

Vraie partition réseau. Élection de leader, logs authentiques. Impossible sur Docker Compose.

Étape 3

TTL atteint → tout disparaît

VMs détruites automatiquement. Aucune trace, aucun coût.

La vision

Quatre ambitions
qui s'articulent.

🧪

Un vrai terrain de jeu distribué

Tester Kubernetes sur un seul hôte, ce n'est pas tester Kubernetes. Ici, les latences sont réelles, les pannes le sont aussi.

🎓

Un support pédagogique concret

Pour nos workshops et nos formations : faire vivre à des étudiants la création d'un vrai cluster multi-sites, en direct.

🏡

Un hébergement partagé

Bots Discord, APIs perso, Nextcloud, Git privé… on arrête de payer des VPS inutiles chez OVH ou Hetzner.

🤝

Une communauté d'entraide tech

Partager, s'entraider, monter en compétences ensemble. La techno n'est qu'un prétexte.

Architecture

Un cerveau central léger,
des bras forts en P2P.

Serveur central (Oracle Cloud Free) • Headscale (coordination) • Orchestrateur API • Dashboard Web • Monitoring 0€/mois à vie coordination légère · pas de données Lyon · Pierre Proxmox + VMs vm vm vm vm Paris · Jacques Proxmox + VMs vm vm vm vm Nantes · Jean Proxmox + VMs vm vm vm vm WireGuard WireGuard tout le data passe en P2P chiffré · jamais par le central
Architecture · détail

Trois couches,
chacune découplée.

Couche 1 · Physique

Sites autonomes

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.

100% autonome par site
Couche 2 · Réseau

Mesh chiffré

Tunnels WireGuard directs entre toutes les machines. Coordination via un Headscale auto-hébergé. MagicDNS pour manipuler des noms, pas des IPs.

0 port ouvert
Couche 3 · Logique

Orchestrateur mince

Une API Express + Postgres sur le VPS gratuit. Auth OAuth, quotas, TTL. Aucun état critique : si elle tombe, les VMs continuent.

Stateless-friendly
💡 Point important

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.

Deep dive réseau · 1/4

Le casse-tête
qu'on devait résoudre.

3 machines, 3 maisons, 3 box internet. On veut que :

  • Toutes les VMs puissent se parler comme sur un réseau local
  • Depuis nos laptops, on accède à ces VMs sans rien configurer
  • Personne d'autre sur internet ne puisse voir nos machines
  • On n'ouvre aucun port sur nos box domestiques
⚠️ La difficulté cachée

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.

Deep dive réseau · 2/4

C'est quoi,
un réseau mesh ?

« Un standardiste vs un appel direct sur portable. » La même différence.

Réseau centralisé classique

Serveur central serveur tombe → tout casse

Réseau mesh

PC1 PC2 PC3 PC4 si une tombe → les autres continuent
trafic détourné par un central vs P2P direct, chiffré, sans tiers qui voit
Deep dive réseau · 3/4

Headscale = l'annuaire.
Tailscale = les agents.

CÔTÉ SERVEUR · VPS Oracle (self-hosted) HEADSCALE annuaire · authentification · ACLs CÔTÉ CLIENTS · chaque machine Client Tailscale Proxmox Lyon gère les tunnels WireGuard Client Tailscale Proxmox Paris gère les tunnels WireGuard Client Tailscale Laptop de Jean gère les tunnels WireGuard
🏨 Analogie

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.

💡 Combo gagnant

Clients Tailscale officiels (qualité pro, open source) + notre propre Headscale (contrôle total, 0€).

Deep dive réseau · 4/4

Littéralement
invisible d'internet.

🔍 Depuis internet (script kiddie)

# 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.
          

✅ Depuis le mesh (laptop Jean)

# 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
          
Pourquoi c'est possible ?

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é.

Les outils choisis

Une stack justifiée,
brique par brique.

Hyperviseur

Proxmox VE

Standard du homelab 2026. Gratuit, mature, API REST propre, cloud-init natif pour injecter config et clés SSH.

Réseau

Headscale + Tailscale

Serveur open source self-hosted + les clients officiels de qualité. Gratuit, illimité, contrôle total.

Backend

Node.js + Express

Framework de référence, surface d'attaque minimale, correspond à nos compétences. Express-rate-limit, Helmet, CORS.

Base de données

PostgreSQL

Users, quotas, VMs actives, historiques. SQLite suffirait au début mais Postgres nous donne de la marge.

Hébergement

Oracle Cloud Free Tier

Gratuit à vie. ARM 2CPU / 8Go RAM. 10 To de trafic mensuel inclus. Backup : Hetzner ~4€/mois.

Auth

GitHub + Google OAuth

Aucun mot de passe à gérer, aucune base utilisateurs à protéger. Passport.js côté Express. Un clic pour s'inscrire.

🎯 Philosophie

Chaque brique est un choix délibéré. Pas de dépendance propriétaire, pas de SaaS obligatoire. Tout peut être remplacé si besoin.

Cas d'usage · 1/2 — Labs techniques

À quoi ça sert,
au quotidien ?

#1

Cluster Kafka multi-DC

3 brokers, un par site. Couper une box pour observer l'élection de leader. Vrais timeouts, pas une simulation Docker.

#2

K3s distribué

1 control plane + 2 workers, un par ville. Kubernetes replanifie les pods automatiquement quand tu coupes un worker.

#3

Chaos engineering maison

chervoisin net block --from lyon --to paris — vois le split-brain d'un cluster MongoDB. Impensable sur AWS.

🔥 Le game-changer

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.

Cas d'usage · 2/2 — Pédago & perso

Et aussi…
former, héberger, bidouiller.

#4

Workshop 10 étudiants · 2 jours

chervoisin vms create --user $student --count 3 --ttl 2d
10 environnements isolés, ACLs strictes. Tout supprimé auto à la fin.

#5

Hébergement projets perso

Bot Discord, API Express, petit site. VMs persistantes via MagicDNS. Fini les VPS qui tournent à 1%.

#6

Bac à sable jetable

chervoisin vms create --name test-clickhouse --ttl 4h
Tester une techno sans polluer ton Proxmox. 4h après : plus rien.

🎓 L'angle pédagogique

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.

Équité & expérience

Quotas par membre,
proportionnels à la contribution.

Quotas par défaut

RessourceQuota
CPUs / threads simultanés8 threads
RAM simultanée16 Go
Stockage total100 Go
Nombre de VMs simultanées10
Durée de vie max par VM30 jours
Règle simple

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.

Dashboard personnel

🏡 CHER VOISIN · Pierre
CPUs4 / 8
RAM6 / 16 Go
Stockage42 / 100 Go
VMs actives3 / 10
api-prod     lyon    persistent
redis-test   paris   3j
kafka-node-1 nantes  5j
Économie

Moins qu'un café
par mois.

Ce que coûte Cher Voisin (/membre)

Serveur central (Oracle Free)0 €
Headscale + Tailscale0 €
HTTPS (Let's Encrypt)0 €
Électricité (laptop recyclé 20W)~ 3,6 €/mois
Total / membre~ 3,6 €/mois

Ce que coûterait l'équivalent cloud

3 VMs 1 CPU / 1 Go (DigitalOcean)~ 45 €/mois
Bande passante inter-régions~ 10 €/mois
Stockage persistant~ 10 €/mois
Total cloud équivalent60–80 €/mois
Sur un an720 – 960 €
~ 20×
Moins cher qu'un cloud public
0 €
Pour le collectif au démarrage
100%
De contrôle sur nos données
Honnêteté

Les limites
qu'on assume.

Aucun projet n'est parfait. Voici ce que Cher Voisin n'est pas, et ce qu'on surveille.

Ce n'est pas

  • Un remplaçant d'AWS. Pas de load balancers managés, pas de BDD managée, pas de CDN.
  • Pour de la production critique. Les box redémarrent, les FAI ont des incidents, EDF coupe.
  • Infini. 3 laptops × 16 Go = 48 Go RAM total. Pour apprendre, pas pour héberger un SaaS grand public.

Ce qu'on surveille

Risque
Oracle change son Free Tier
→ Bascule vers Hetzner ~4€/mois en 30 min (Docker Compose + infra as code)
Risque
Dépendance aux DERP Tailscale
→ On peut auto-héberger nos propres DERP (~50 Mo RAM, 30 min)
Risque
Courbe d'apprentissage
→ Guide détaillé, onboarding en visio, WhatsApp pour l'entraide
Roadmap

On avance à
notre rythme.

Phase 0 · Préparation

Chacun monte son site

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.

Phase 1 · MVP technique

Le mesh marche, les VMs se créent

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.

Phase 2 · Expérience utilisateur

Dashboard, auth, quotas, monitoring

Next.js pour le front, OAuth GitHub+Google, ACLs par utilisateur, TTL auto, Prometheus+Grafana. C'est là que ça devient beau.

Phase 3 · Ouverture

Documentation, templates, exposition publique

Templates pré-configurés (Kafka, K8s…), étude des options d'exposition publique (Cloudflare Tunnels, reverse proxy partagé), premières démos à nos entourages.

Phase 4 · Évolution

Selon les envies qui émergent

Scale à 6-10 sites, self-hosted DERP, CI/CD intégré, marketplace de stacks partagées. Pas de date fixée.

Call to action

On le
construit ?

Le projet n'attend pas. On peut démarrer dès qu'on est 3 matériellement prêts.

01

Pose tes questions

Sur le groupe WhatsApp qu'on va créer. Tout se discute.

02

Décide si tu en es

Pas d'engagement. Tu peux récupérer ta machine à tout moment.

03

Prépare ton matos

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. »

Cher Voisin v1 · Avril 2026 Open source ready

Raccourcis clavier

Slide suivante / étape suivante
Slide précédente
Avancer étape par étapeSPACE
Première / dernière slideHOME / END
Vue présentateurP
Plein écranF
Aide (ce panneau)?
FermerESC
Slide actuelle
Slide suivante
Notes du speaker
Timer
00:00
Slide 1 / 18