Dans mon premier article, j’écrivais que j’avais choisi Firebase Hosting pour lancer ce blog vite, en mettant la souveraineté de côté — “un compromis, pas une position définitive”. Voilà, on y est. Ce blog ne tourne plus chez Google, il tourne chez moi, sur un mini PC posé dans mon entrée.
Mais pour être honnête, ce n’est pas le blog qui m’a fait sauter le pas. Il a pris le train en marche.
Le déclic : une Raspberry Pi à bout de souffle
Tout est parti d’un problème de matériel ! Depuis un moment, je faisais tourner Home Assistant sur une Raspberry Pi 3. Sur le papier, c’est limite. En pratique, il plantait tous les deux jours. Le coupable ? Probablement le manque de RAM, mais la carte micro SD n’est pas au-dessus de tout soupçon non plus — elles ont la fâcheuse réputation de mal vieillir quand on les sollicite en écriture en continu.
Redémarrer ma Raspberry Pi un jour sur deux, ça use. Alors pendant quelques mois, je me suis tâté : racheter une Raspberry Pi plus récente ? Passer sur un SSD ? Ou viser directement plus gros ? J’ai fini par trancher : j’ai acheté un mini PC.
Le matériel
Mon choix s’est porté sur un mini PC Beelink, dans sa version 16 Go de RAM avec un processeur Intel N150. Pas une bête de course, et c’est voulu.
L’idée derrière ce choix : suffisamment de puissance et de RAM pour ne plus jamais revivre les plantages de la Pi, et de la marge pour faire tourner plusieurs services en parallèle. 16 Go, c’est seize fois le petit 1 Go de la Pi 3, et bien assez pour empiler quelques conteneurs sans y réfléchir. Le N150, lui, est une puce basse consommation, pensée pour ce genre de machine. C’est allumé 24/7, donc pas question de prendre un PC qui chauffe la pièce et fait grimper la facture d’électricité.
Le réseau : de l’entrée au garage
Pour l’instant, le mini PC est posé dans l’entrée, branché directement à côté de la box. Ça marche, mais c’est provisoire.
L’objectif suivant : installer une petite armoire réseau dans le garage pour y ranger le mini PC et un switch, et tirer un câble Ethernet depuis la box jusqu’à ce switch. Le garage deviendra alors le point de centralisation de tout le matériel réseau : serveur, switch, et à terme NAS et autres bricoles. Un seul endroit technique dans la maison, plutôt que des câbles et des boîtiers qui traînent pièce par pièce.
Le chantier a d’ailleurs déjà commencé : j’ai passé un câble du garage jusqu’à mon bureau. Une fois l’armoire en place, je serai moi aussi en filaire quand je bosse. Le Wi-Fi fait le job pour le quotidien, mais pour un serveur qui doit rester stable 24/7 (et pour un poste de travail), je préfère largement une liaison filaire — moins de coupures, moins de latence, et surtout un truc qui ne dépend pas de la qualité du signal du jour. Ce sera l’occasion d’un article dédié quand ce sera fait (ou en cours de galère, plus probablement).
Un homelab bien rangé, sinon ça ne passe pas
Dernier point, non technique mais tout aussi important : le homelab doit être propre et rangé. Pas de nid de câbles qui pend, pas de ventilateurs qui bourdonnent dans le salon, pas de matériel qui traîne sur un coin de table. C’est aussi pour ça que le coin de l’entrée ne peut pas durer, et que l’armoire dans le garage s’impose : tout sera centralisé, discret, et surtout ça ne dérangera pas ma compagne, qui n’a clairement pas signé pour vivre avec un datacenter miniature sous les pieds. Un homelab qui fait râler, c’est un homelab qui ne dure pas.
Retour au problème de départ : Home Assistant
Le mini PC branché, première mission : régler ce pour quoi je l’avais acheté. Plutôt que de migrer l’ancienne installation, j’ai préféré tout réinstaller from scratch. Repartir propre, sans traîner les bricolages accumulés sur la Pi.
J’en ai profité pour revoir la persistance des données : l’historique de Home Assistant est désormais stocké dans une base PostgreSQL, qui tourne elle aussi sur le homelab. Fini la base SQLite par défaut qui martelait la carte micro SD à longueur de journée.
Le résultat ? Plus aucun plantage. Et au-delà de la stabilité, c’est carrément plus fluide et plus rapide à l’usage : les tableaux de bord s’affichent sans attendre, les automatisations réagissent au quart de tour.
Surtout, ça ouvre la porte à de nouveaux équipements. Le prochain projet : piloter mes volets roulants en Zigbee depuis Home Assistant. Enfin, en théorie — il faudrait déjà que j’installe des interrupteurs Zigbee sur les volets ^^.
Problème réglé, donc. Et c’est là que je me suis rendu compte que j’avais désormais une machine allumée 24/7, largement sous-exploitée par la seule domotique.
Et la souveraineté dans tout ça ?
C’est le moment où le blog revient dans l’histoire. Quand je l’ai lancé, j’avais écarté l’auto-hébergement faute de machine fiable — la Pi n’était pas une option sérieuse, j’en ai eu la preuve depuis. Firebase, c’était le compromis confortable : gratuit, rapide, sans y penser. Mais c’était aussi confier mon contenu à Google alors que rien ne l’imposait.
Ce blog est 100% statique, buildable en une image Docker : avec le mini PC sous la main, plus aucune raison de continuer à le confier à quelqu’un d’autre. Alors je l’ai rapatrié. Ce blog que vous lisez tourne désormais sur ce mini PC.
Côté logiciel, j’ai fait simple. Sur la machine, un Debian server, sobre et stable, avec Docker par-dessus. Tout le reste tourne en conteneurs, orchestrés avec Docker Compose.
En première ligne, un conteneur Traefik fait office de reverse proxy : c’est lui qui reçoit les requêtes, porte le HTTPS (certificats compris) et les route vers le bon service selon le nom de domaine. Derrière lui, sur un réseau Docker interne à la machine (rml-lab), quelques conteneurs, dont le blog. Aucun d’eux n’est exposé directement : tout passe par Traefik, et chaque nouveau service n’a qu’à rejoindre ce réseau pour être servi à son tour.
Le blog, lui, est buildé via un Dockerfile multi-stage (Hugo pour générer le site, nginx pour le servir) et poussé sur Docker Hub, prêt à être déployé sur la machine.
Rien de nouveau sous le soleil pour qui a déjà touché à l’auto-hébergement, mais c’est la première fois que je le fais “pour de vrai”, avec l’intention de le faire durer.
Et maintenant : tout ce qui devient possible
Acheté pour héberger ma domotique, le mini PC ouvre bien plus de portes que prévu. Le blog est le premier service ouvert sur Internet à y migrer, parce que c’est le plus simple et le moins critique s’il tombe.
Mais le vrai changement est ailleurs : je ne suis plus limité aux technos “compatibles Firebase”. Plus besoin de faire rentrer mes idées dans le moule d’une plateforme, de ses services managés et de ses quotas. Si ça tourne dans un conteneur, ça peut tourner chez moi. Le champ des possibles s’ouvre en grand.
J’en ai d’ailleurs déjà profité pour ajouter deux briques :
- Umami pour l’analytics de ce blog. Des statistiques de fréquentation simples, respectueuses de la vie privée et conformes au RGPD, sans cookie et sans envoyer les données de mes lecteurs chez un tiers.
- Keycloak pour l’authentification. Il protège déjà certains services internes que j’utilise pour développer et régler deux-trois choses, et il servira de socle d’authentification pour mes futures applications.
Et la liste ne va faire que s’allonger : mes autres side projects, dont je reparlerai sûrement dans de futurs articles, et tout ce qui me passera par la tête une fois le réseau câblé.
Point d’attention : les sauvegardes
Héberger chez soi, c’est aussi devenir le seul responsable de ses données. Chez Firebase, la question ne se posait pas vraiment. Ici, si le SSD du mini PC lâche demain, c’est tout ce qui vit dans PostgreSQL qui part avec, à commencer par l’historique de Home Assistant et les données des futures applications que j’y installerai — pensez à Vaultwarden et à mes mots de passe : les perdre serait critique !
C’est le chantier sur lequel je travaille en ce moment : une routine de sauvegarde automatique des données, PostgreSQL en priorité. Et pour que ces sauvegardes survivent à un incident à la maison, elles ne resteront pas sur place : elles partiront sur un stockage objet compatible S3, chez un des hébergeurs français du marché (Clever Cloud, OVHcloud et consorts). Souveraineté oblige, ce serait dommage de rapatrier mes services pour envoyer mes backups outre-Atlantique.
Là aussi, un article suivra quand ce sera en place.
Le mot de la fin
Ce qui devait être un simple dépannage de domotique est devenu un vrai homelab. Il reste du chemin : l’armoire réseau à installer dans le garage, les sauvegardes à mettre en place, les volets à brancher sur Home Assistant. Mais la machine est là, elle tient la charge, et ce blog en est la preuve.
L’objectif est clair maintenant : tout ce qui peut tourner chez moi, tournera chez moi.
À bientôt. Ronan.