Construire son homelab avec des Raspberry Pis

Sun, April 5, 2026 -
Ademoverflow Homelab

Construire son homelab avec des Rpis de récup.

Comment ça, des Rpis de récup ?

On est en juin 2024. Avec mon acolyte / frère / cofondateur de @antipodestudios, on décroche une prestation assez stylée : le développement d’une app complète de gestion d’un événement Nike Football en plein centre de Paris.

L’événement consistait en la disposition de plusieurs ateliers de Football, selon plusieurs thèmes, et d’un tournoi en 1v1. Pour rendre la gestion des ateliers et des joueurs, il fallait développer une application web permettant aux intervenants Nike de gérer les ateliers via plusieurs iPads, et développer en parallèle des interfaces sur écran géant pour y afficher scores / leaderboard, etc.

On rentre pas dans le détail de ce challenge technique, c’est pas le sujet de l’article. Mais en gros on était parti sur des raspberry pi 5 pour gérer chaque écran et afficher via une webapp les données de l’événement.

Si vous voulez en savoir plus, rendez vous sur @Nike Football x Bureau Pleiades x Antipodestudios. Ou sur notre instagram @antipodestudios.

Passé cet événement (qui fut un succès technique pour nous), il me restait entre les mains plusieurs rpis 5. Posés à côté d’anciens rpis 4 et 3, ils ne servaient plus à rien.

Fallait trouver un moyen de les faire bosser.

Que faire de ces jouets pour Nerd ?

5 Raspberry pi 5 (8GB), 1 Raspberry 4 (2 GB), et 1 Raspberry pi 3 (pas assez de GB). Un switch. Des cartes microSD. C’est ce que j’avais en stock.

Qu’en faire ?

Et là, la lumière fut.

Homer Super Intelligence

Fous-moi ça sur le réseau local (chez moi quoi), ssh-toi dessus et host tes petits projets. C’est cool, mais chiant. Faut un setup un peu plus poussé.

Sur des projets pour des clients, j’installe souvent Coolify sur des VPS pour hoster leurs apps. C’est rapide, efficace, connecté à GitHub. Mais je voulais pouvoir hoster plusieurs projets sans me prendre la tête à me demander quel projet ira sur quelle machine. Il me fallait un niveau d’abstraction plus haut.

T’as compris, on est là pour se faire ch*er à setup une mini infra complète. On partira donc sur une solution kubernetes.

Mais il y a un hic : les rpis ne sont pas faits pour ça. k8s est gourmand, rien que pour le faire tourner seul. Ce serait du gâchis.

Et là, je tombe sur un projet initié par les gens de chez Rancher, j’ai nommé k3s.

k3s est une version légère de kubernetes, permettant de tourner sur des machines peu puissantes, i.e des rpis. Parfait candidat pour nous !

On s’y met.

Job done

Le hardware

Avant de me lancer, j’ai quand même demandé à mon ami Claude ce qu’il pensait du projet. Complètement validé ! À une condition près : ne pas se fier aux cartes microSD. En effet sur le long-terme ça risque de cramer. On veut du cluster stable ici.

Voici donc le setup hardware qu’on gardera pour le projet :

  • 4x raspberry pi v5 (8GB) -> workers
  • 1x raspberry pi v4 (2GB) -> control plane
  • 1x SSD 2.5” pour le control plane
  • 4x nvme SSD pour les workers (128 GB chacun)
  • Switch 2.5G 8 ports
  • Grosse alimentation 200W pour carry tout ce beau bordel (et éviter 5 alimentations distinctes pour chaque rpi.)

Les raspberry pi v5 peuvent accueillir un ssd nvme via une carte d’extension connectée au port PCI, image d’illustration :

Rpi NVME

Ouais, bon… à la base c’était un projet à base de récup… personne ne me jugera ici. On fait les choses bien.

On a tout le hardware qu’il nous faut pour commencer à setup la partie logicielle. Let’s go.

Le software

La partie software se divise en deux :

  • choisir le bon OS, l’installer sur NVME et boot dessus automatiquement
  • setup k3s sur chaque rpi.

L’OS

Pas trop de choix ici. On choisit parmi les OS officiels de Raspberry PI Imager. Le seul candidat pour nous sera Raspberry Pi lite OS (64bits), sans environnement de bureau.

Le setup est assez limpide : flash microSD, création d’un user, ajout de clef ssh (pour accéder au pi en direct, servira au setup et pour debug), etc.

On flash, on alimente le rpi, on le connecte au réseau via le switch, et on lui configure un bail DHCP statique (important !), pour pouvoir garder la même adresse IP locale (prérequis pour assurer une bonne communication sous k3s).

Pour booter sur le nvme, il faut copier tout (dd est ton pote pour ça) sur le nvme, puis choisir le boot NVME avec raspi-config.

On fait cette manipulation pour tous les raspberry pis. C’est chronophage mais simple. D’ailleurs on pourrait scripter ça via Ansible ou Terraform, mais pas besoin de se prendre la tête ici. Ça serait néanmoins intéressant si le homelab doit subir des changements de rpis dans le temps, afin d’éviter d’avoir tout à refaire à la main.

K3S

La partie intéressante, et néanmoins la plus simple. On procède comme indiqué sur la doc officielle. En commençant bien entendu par le control plane.

On se ssh dessus.

Je passe les détails (si vous avez besoin d’aide sur cette partie, envoyez-moi un mail hello@ademoverflow.com), mais en gros on installe avec cette belle commande :

curl -sfL https://get.k3s.io | sh -

Tu check que tout se passe bien, et tu lances sudo kubectl get nodes pour voir si ton control plane est visible.

On récupère le token d’authentication k3s, et on fait pareil avec les autres rpis :

curl -sfL https://get.k3s.io | 
K3S_URL=https://<control-plane-ip>:6443 
K3S_TOKEN=<node-token> sh -

Normalement tout est ok ! On a notre k3s up et prêt. Enfin presque.

Accès depuis le réseau local

On pourrait accéder au cluster depuis le control plane via ssh dessus. Mais c’est chiant et pas propre.

On va donc récupérer la kube config avec les bons certificats, pour l’avoir sur notre machine locale (ton ordi quoi).

De mémoire, c’est dans /etc/rancher/k3s/k3s.yaml. Faut possiblement changer l’adresse ip boucle locale par celle du rpi, pour que ça puisse fonctionner.

À ce stade, on a notre cluster k3s up, prêt à recevoir du workload.

Fire

Un petit screenshot k9s, quand même !

Fire

Software OK, Hardware OK, et maintenant ?

Bon, c’est bien beau tout ça, mais ce beau monde ne va pas rester sur mon bureau. Regarde la gueule du bordel :

Messy setup

On va se lancer dans le design d’un mini server vertical style homelab (mais nan !?), le tout en impression 3D.

Je scroll sur makerworld, à la recherche d’un projet similaire, mais rien de bien appétissant. Je trouve quand même une base de type “tour” et je lance l’impression.

Ça donne ça :

Empty tour

Go design les étages maintenant. On a de la place, mais on va quand même optimiser un peu un étage, en y mettant 2 rpis.

Ça donne ça :

Workers

Au final, on a 3 étages :

All racks

On passe au montage, câblage, blablabla…

On obtient ce magnifique homelab server :

Finished

Bon c’est cool, on a tout de prêt ! Maintenant, passons à sa gestion.

Mais… j’en ferai un article dédié.

D’ici là, porte toi bien.

Adem.