Qu'est-ce que je roule dans mon Homelab ? Le tour de mes outils auto-hébergés
Un tour complet des outils et services que j'exécute dans mon Homelab, organisés par couche : infrastructure, réseau & sécurité, dev & AI, monitoring et multimédia, le tout piloté depuis mon dashboard Homepage et déployé en GitOps avec Flux.
Contexte
Je suis convaincu que le meilleur moyen d’apprendre l’infrastructure, c’est d’en construire une. C’est exactement la philosophie de mon Homelab : appliquer à la maison ce que je fais en entreprise, avec des outils open-source, pour tester, casser et réparer.
Au fil du temps, la liste des services s’est structurée en couches bien distinctes : infrastructure, réseau & sécurité, développement, monitoring et multimédia. Et un jour, j’ai réalisé qu’il me fallait un point d’entrée unique pour tout piloter. Alors j’ai testé plusieurs solutions avant de choisir Homepage comme mon dashboard central.
Mon Homelab n’est pas un serveur “qui tourne dans un coin”. Tout est versionné dans mon monorepo que je vais opensource bientôt, provisionné avec
Terraform/OpenTofuetAnsible, et déployé en GitOps avecFlux CD.
Objectif
Dans cet article, je vous propose une visite guidée de mon Homelab. Après lecture, vous saurez :
- Comment l’infrastructure est organisée (virtualisation, Kubernetes, GitOps)
- Quels outils réseau, sécurité et développement je self-héberge, et dans quel but
- Quelle stack d’observabilité j’utilise pour tout surveiller
- Comment tous ces services sont exposés et sécurisés
C’est un tour d’horizon, pas un tutoriel pas-à-pas : une photo de ce que je roule concrètement, avec les liens utiles pour approfondir chaque outil.
Une vue d’ensemble
Avant d’entrer dans le détail, voici comment s’organise mon Homelab :
mindmap
root((Homelab))
Dashboard
Homepage
Infrastructure
Proxmox VE (5 nœuds + PBS)
Kubernetes / Talos Linux
Flux CD + Argo CD
Longhorn
TrueNAS
Réseau & Sécurité
OPNsense
Traefik
Pi-hole
Authentik
OpenBao + Infisical
Dev & AI
Forgejo
Backstage
n8n + Kagent + OpenCode
Monitoring
Prometheus + Grafana
Alertmanager
Uptime Kuma
Multimédia
Navidrome
Immich
Audiobookshelf
Le point d’entrée : Homepage
Homepage est un dashboard self-hosté, léger et entièrement configurable en YAML. C’est la porte d’entrée de tout mon Homelab.
Il me permet de :
- Regrouper tous mes services par onglets :
Infrastructure,Network & Security,Dev & AI,Monitoring,Multimédia,External Services - Afficher des widgets en temps réel : ressources CPU/mémoire/disque, date, recherche
- Accéder à chaque service en un clic, avec le statut de disponibilité
Infrastructure
La virtualisation : Proxmox VE
Proxmox VE est la base de mon Homelab. Un cluster de cinq nœuds dont trois sont actifs en permanence (PVE1, PVE2, PVE3), avec un Proxmox Backup Server dédié aux sauvegardes.
Les deux nœuds restants sont démarrés à la demande : une CronJob Kubernetes envoie un Wake-on-LAN (WoL) pour les réveiller quand j’en ai besoin, et une autre les éteint automatiquement via un schedule. Objectif : économiser la consommation électrique quand la charge ne les justifie pas.
Tout le provisioning est fait en Infrastructure-as-Code avec Terraform/OpenTofu, et la configuration avec Ansible.
Le système du cluster : Talos Linux
Au-dessus de Proxmox, mon cluster Kubernetes tourne sur Talos Linux, une distribution immutable conçue exclusivement pour Kubernetes.
Le GitOps : Flux CD et Argo CD
Pour appliquer les changements, j’utilise le GitOps : Flux CD réconcilie l’état du cluster avec ce qui est déclaré dans mes dépôts git. Un git push suffit pour déployer, sans commande kubectl apply à la main. J’utilise aussi Argo CD, mais plutôt pour garder la main sur le cluster et faire quelques petites expériences.
Autour de ça, j’ai aussi :
- Headlamp : une UI moderne pour inspecter le cluster
- Flux Web : l’interface web de Flux CD pour visualiser les réconciliations
- AKHQ : l’interface de pilotage de mon cluster Kafka, déployé avec l’opérateur Strimzi
Le stockage : TrueNAS, Longhorn, RustFS
Le stockage est organisé en plusieurs niveaux :
- TrueNAS pour le stockage réseau classique
- Longhorn comme stockage distribué natif Kubernetes
- RustFS, un stockage objet compatible
S3, décliné en deux pools (un rapide et un lent), selon l’usage des applications
Et PgAdmin pour administrer les bases PostgreSQL.
Réseau & Sécurité
Le réseau : OPNsense, routeurs, Traefik
En basse couche, le réseau est protégé par un pare-feu OPNsense, complété par deux routeurs. Pour exposer les services, Traefik fait office de reverse proxy et de load balancer.
Le DNS est géré par Pi-hole, que j’utilise aussi comme bloqueur de publicités au niveau du réseau.
L’identité et le SSO : Authentik
Authentik est mon Identity Provider. Il centralise le SSO de tous les services self-hébergés et gère les accès via un proxy OAuth. Un seul compte, une seule session, des politiques d’accès granulaires.
Les mots de passe : Vaultwarden
Vaultwarden, l’implémentation légère et open-source de Bitwarden, héberge mon gestionnaire de mots de passe. Synchronisation multi-appareils sans dépendre d’un service cloud.
Les secrets : OpenBao et Infisical
Côté secrets, j’utilise deux outils complémentaires :
- OpenBao, le fork communautaire de
Vault, pour lePKI, les secrets dynamiques et l’intégration avec Kubernetes viaExternal Secrets - Infisical pour la gestion des variables d’environnement de mes outils
IaC(Terraform, Ansible) et de mes pipelines CI/CD
Je détaille la migration de
direnvversInfisicaldans mon article : Plus de .envrc, infisical mon seul gestionnaire de secrets.
Dev & AI
Hébergement de code source et CI : Forgejo
Forgejo héberge mes dépôts git et mes pipelines CI/CD. C’est le cœur de mon workflow GitOps : toute la configuration du Homelab, y compris celle de Homepage, vit dans Forgejo.
Le portail développeur : Backstage
Backstage est mon developer portal. Il sert de catalogue de services : aujourd’hui, avec l’IA qui est capable de générer des composants, honnêtement je ne m’en sers pas.
Les flux RSS
J’ai vibecodé une application qui me permet de centraliser mes flux RSS, sans tracker ni algorithme. Un petit plaisir de liberté numérique que je lis quotidiennement pour suivre les dernières actualités.
La documentation : Mombedocs
Mombedocs est généré avec Zensical.
L’IA : n8n, Kagent, OpenCode
Et bien sûr, la partie la plus récente et la plus amusante :
- n8n pour automatiser mes workflows
- Kagent, un agent IA intégré à Kubernetes pour l’exploitation du cluster
- OpenCode, mon assistant de codage que j’utilise quotidiennement via l’option web que je self-host.
L’IA auto-hébergée est devenue un vrai sujet de mon Homelab : j’utilise au quotidien
OpenCode/Pipour coder etKagentpour interagir avec mon cluster.
Monitoring
La stack observabilité : Prometheus, Grafana, Alertmanager
Sans observabilité, on opère à l’aveugle. Ma stack est classique mais complète :
- Prometheus collecte les métriques
- Grafana les visualise dans des dashboards
- Alertmanager route les alertes vers Discord.
La supervision : Uptime Kuma
Uptime Kuma surveille la disponibilité de tous mes services, avec des notifications immédiates en cas de panne. C’est la couche “à l’extérieur du cluster” qui me dit si le reste fonctionne.
Multimédia
La musique : Navidrome
Navidrome me permet de streamer ma bibliothèque musicale en self-hosting, avec une interface moderne.
Les photos : Immich
Immich est mon alternative à Google Photos : sauvegarde, recherche et reconnaissance automatique des photos, le tout chez moi.
Les audiolivres : Audiobookshelf
Audiobookshelf centralise ma bibliothèque d’audiolivres et de podcasts, synchronisée entre tous mes appareils.
Ressources utiles
- Homepage — Dashboard
- Proxmox VE
- Talos Linux
- Flux CD
- CraftArc — mon monorepo Homelab
- Les autres articles du blog
Conclusion
Mon Homelab est une architecture en couches, pas une pile de services : chaque outil répond à un besoin et chaque couche est déployée en GitOps. Le dashboard Homepage n’est que la partie visible d’un ensemble pensé comme un environnement professionnel.
J’ai commencé petit avec un simple serveur Docker, puis j’ai tout migré vers Kubernetes au fil du temps. Chaque service ajouté a enrichi l’ensemble sans jamais le rendre ingérable.
