Un seul serveur pour tout remplacer : le futur de mon homelab
Mon homelab tient aujourd’hui sur deux pattes bancales. D’un côté un NUC Intel avec un Pentium Silver J5005 qui fait tourner Home Assistant et une vingtaine de conteneurs Docker. De l’autre un VPS Oracle ARM gratuit où je code, où tournent mes agents IA et mon assistant perso. Les deux sont à bout de souffle, et je vais être honnête avec vous : le NUC est saturé, et le VPS, avec ses deux cœurs, devient vite trop juste dès que je lance plusieurs agents en même temps.
Alors j’ai posé le projet à plat. Le résultat tient sur une seule image, et c’est elle que je vous propose de décortiquer.
Le schéma est généré à partir d’un simple fichier YAML. Les domaines et les adresses publiques sont masqués. Touchez l’image pour l’ouvrir en haute résolution.
Le principe : je suis le seul utilisateur
Avant de parler matériel, il y a une règle qui a guidé toutes les décisions. Je suis le seul à utiliser ce homelab. Personne d’autre ne s’y connecte. Ça change tout.
Ça veut dire que je n’ai pas besoin de VLAN séparés pour les serveurs, pas d’ACL compliquées, pas de Portainer pour gérer des conteneurs que je déploie de toute façon par script. J’avais Jellyfin et Plex en parallèle « au cas où » : Jellyfin dégage. À chaque fois que j’hésitais entre deux options, j’ai pris la plus simple. Un homelab, c’est censé être un plaisir, pas un deuxième boulot d’astreinte.
Le serveur : mon ancien PC gamer, sans la carte graphique
Mon PC gamer n’existe plus, mais ses pièces sont toujours là, avec un Ryzen 9 7900 dedans. Elles deviennent le cœur de la maison. Les pièces que je garde :
- Le processeur, un AMD Ryzen 9 7900 avec 12 cœurs et 24 threads, que je bride en mode Eco à 65 W. On perd quelques pourcents de perf et on gagne énormément en chauffe et en bruit.
- La mémoire, 32 Go de DDR5 en deux barrettes, qui laisse de la place pour monter à 64 Go si besoin.
- Le refroidissement, un watercooling DeepCool LT520 en 240 mm, largement surdimensionné à 65 W, donc silencieux.
- L’alimentation, une MSI MPG A750GF en 80 Plus Gold.
- Le boîtier, un Fractal Node 804 qui accepte 8 à 10 disques 3,5 pouces, parfait pour faire grossir le stockage plus tard.
Seul achat obligatoire : la carte mère. Ma carte actuelle est au format ATX et ne rentre pas dans le Node 804, qui est en micro-ATX. Je pars probablement sur une ASRock B650M Pro RS, sans fioritures.
Et la carte graphique ? Elle part. Le 7900 a un petit iGPU Radeon intégré qui suffit largement pour que Plex transcode en matériel. C’est une pièce en moins qui consomme et qui chauffe.
Côté stockage, un NVMe de 1 To accueille Proxmox et les disques des machines virtuelles, un NVMe de 500 Go encaisse les téléchargements en cours et les sauvegardes locales, et le disque dur de 1,8 To du NUC déménage tel quel pour les médias.
Trois machines dans une
Proxmox découpe le serveur en trois invités, et vous voyez la répartition en haut du cadre du serveur sur le schéma.
Home Assistant a sa propre VM avec 2 cœurs et 4 Go. Elle ne fait que de la domotique : la charge de la voiture sur le surplus solaire, le ballon d’eau chaude chauffé par le routeur solaire, la bascule heures creuses / heures pleines, la prévision de production. La clé Zigbee est branchée sur le serveur et passée directement à la VM.
docker-stack est un conteneur LXC avec 4 threads et 8 Go, et c’est lui qui fait tourner mes 16 conteneurs Docker : Caddy en reverse proxy, TeslaMate, Mosquitto, toute la chaîne média et le petit back de mon app (j’y reviens). Il est restauré tel quel depuis le NUC : je ne réinstalle rien.
atelier est une VM de 8 threads et 16 Go qui remplace le VPS Oracle. C’est mon poste de travail, celui où je code depuis l’iPhone et l’iPad. Claude Code, mes sessions de terminal, mon assistant perso Hermes et quelques stacks de test pour le boulot y tournent. Elle n’est même pas sauvegardée : elle se reconstruit entièrement depuis mes dépôts git.
Il reste 10 threads libres pour les pointes. Je pense être tranquille un moment.
Le réseau ne bouge pas
Bonne nouvelle, tout le réseau reste en place. La UniFi Cloud Gateway Fiber reçoit la fibre et sert de pare-feu, de DHCP et de DNS local. Un switch Flex XG en 10 Gb/s relie la passerelle, le Mac mini et le futur serveur. La borne U7 Pro Wall en Wi-Fi 7 est alimentée directement en PoE+ par la passerelle et diffuse trois réseaux : un pour les objets connectés, un pour mes appareils, un pour les invités, isolé sur son propre VLAN.
Ce dont je suis le plus content, c’est le cadre « Ouvert sur Internet » à droite du schéma. Il ne contient plus qu’une ligne : ce blog, qui ne tourne même plus à la maison. Je viens de quitter WordPress pour un site statique Astro hébergé chez Cloudflare Pages, et dans la foulée j’ai coupé le dernier accès SSH qui passait par un tunnel Cloudflare. Rien n’entre dans le homelab depuis Internet : pas de port ouvert sur la box, pas de tunnel. Tout le reste, Home Assistant, Plex, les outils, n’est joignable que depuis la maison ou via Tailscale, qui reste allumé en permanence sur mon iPhone et mon iPad. Et comme Caddy récupère de vrais certificats Let’s Encrypt par le défi DNS de Cloudflare, j’ai du HTTPS propre partout, même en local, sans un seul certificat auto-signé.
Les sauvegardes, enfin sérieuses
Là, je vais faire mon mea culpa. Pendant longtemps, mes sauvegardes, c’était « Home Assistant fait les siennes et on verra ». Ce n’est plus le cas, et c’est même la première chose que j’ai mise en place, avant d’acheter quoi que ce soit.
Chaque nuit, Proxmox fera une copie locale des machines sur le NVMe de 500 Go. Ensuite restic envoie le tout, chiffré et dédupliqué, chez Cloudflare R2 : la sauvegarde de Home Assistant, le dump de la base TeslaMate, les configurations des conteneurs. Ça représente une dizaine de gigas et ça me coûte entre 0 et 1 € par mois. J’ai fait un test de restauration complet, et il passera tous les trimestres.
Ce que je ne sauvegarde pas, je l’assume : les films et séries se retéléchargent, et la VM atelier se reconstruit depuis git.
Ma propre app pour surveiller tout ça
Dernier point, et c’est celui qui m’a le plus amusé. J’avais tendance à tout mettre dans Home Assistant, y compris la surveillance des serveurs. Mauvaise idée : Home Assistant, c’est pour la maison. Si la VM tombe, elle ne peut pas vous prévenir qu’elle est tombée.
Alors j’ai développé ma propre app iPhone et iPad. Un petit back tourne dans docker-stack, il interroge Home Assistant, Proxmox, Docker et les sauvegardes, et l’app affiche tout : la production solaire en direct avec les flux d’énergie animés, les analyses par jour, semaine, mois ou année, et l’état de chaque machine et de chaque conteneur. Le schéma que vous voyez ici est même intégré dans l’app, avec une pastille verte, orange ou rouge sur chaque service, mise à jour en direct.
Pour le cas où toute la maison tombe (coupure de courant, box plantée), un Cloudflare Worker sonde la maison chaque minute depuis l’extérieur et m’envoie une notification si elle ne répond plus.
Ce qui part à la retraite
En bas du schéma, il y a un petit encart « Retirés ». Le NUC sera revendu, et le VPS Oracle supprimé. Deux machines en moins à maintenir, une seule à surveiller, et tout est à la maison.
Et maintenant ?
Il me reste à commander la carte mère, monter le tout et migrer les trois machines. Je vous raconterai la migration dans un prochain article, avec les vraies mesures de consommation : je suis curieux de voir ce que donne un Ryzen 9 en mode Eco qui ne fait rien de la journée.
Un dernier mot sur le schéma. Il est inspiré du projet open source homelab-diagram de Goblinmine. Le mien est généré par un petit script à partir d’un fichier YAML qui décrit chaque machine, chaque port et chaque conteneur. Si vous voulez la même chose pour votre homelab, foncez : c’est le genre de doc qu’on a vraiment envie de garder à jour.
