Après avoir mis en place le monitoring et la supervision, une étape tout aussi essentielle pour mon homelab est la mise en place d’un système de stockage fiable et adapté à mes besoins. Mon infrastructure repose sur quatre piliers principaux :
PostgreSQL pour la gestion des vecteurs et autres données applicatives. Gitea pour l’hébergement de mon code et l’intégration CI/CD. Docker Registry pour un stockage léger et efficace des images Docker. Stockage FTP sur mon NAS Synology pour héberger datasets, modèles et autres fichiers nécessaires. Dans cet article, je vais détailler mon approche et les outils utilisés.
Après avoir mis en place l’infrastructure de base et l’exposition sécurisée des services, une étape cruciale dans la gestion d’un homelab est la mise en place d’un système de monitoring complet. Dans cet article, je vais détailler les différents outils que j’utilise pour surveiller et gérer mon infrastructure : Portainer pour la gestion des conteneurs, Prometheus et Grafana pour la collecte et la visualisation des métriques, et Glance pour avoir une vue d’ensemble rapide de mon homelab.
Après avoir mis en place l’infrastructure de base de mon homelab avec Proxmox, l’étape suivante consiste à exposer les services de manière sécurisée et à automatiser leur déploiement. Pour cela, j’utilise Nginx Proxy Manager comme reverse proxy et Ansible pour l’automatisation. Cette configuration permet d’exposer facilement mes services en HTTPS tout en maintenant une gestion centralisée des certificats SSL.
Architecture d’Exposition des Services # Nginx Proxy Manager # Le reverse proxy est installé sur la VM stargate (192.168.1.134) qui sert de point d’entrée pour tous les services exposés. Cette configuration présente plusieurs avantages :
Pour finaliser mon projet de recommandation de livres, j’ai mis en place une stratégie de déploiement basée sur Docker et orchestrée via un Makefile. L’ensemble du système est hébergé dans mon homelab, avec une API accessible à l’adresse https://app.bookfarm.spacesheep.ovh/. Tout est sur le dépôt Github.
Architecture de Déploiement # Le déploiement s’articule autour de trois composants principaux :
Pipeline de données : Gère la collecte et le traitement des données Microservices : Services de vectorisation, clustering et gestion des images API : Point d’entrée pour les requêtes clients Chaque composant est conteneurisé avec Docker et peut être déployé indépendamment grâce à un Makefile qui orchestre l’ensemble.
Dans le cadre de mon projet homelab, qui vise à créer un environnement informatique personnel pour héberger divers services et expérimenter avec différentes technologies, la première étape consistait à installer et configurer Proxmox VE comme hyperviseur sur mes deux serveurs. Ce choix s’inscrit dans une architecture plus large comprenant un routeur, deux serveurs de virtualisation et un NAS Synology, permettant de centraliser et d’automatiser la gestion de mes services personnels.
Avec mon homelab, mon objectif est de créer un environnement flexible, scalable et automatisé, couvrant des besoins variés : développement, stockage, monitoring, et auto-hébergement de services personnels. Voici une présentation des choix technologiques et de la structure que j’ai adoptés pour répondre à ces besoins.
Architecture # Mon homelab se compose de quatre éléments principaux :
Routeur : Héberge une petite VM avec des services réseau essentiels. Serveur avec GPU (Proxmox) : Conçu pour des tâches exigeantes comme l’hébergement de modèles IA, le développement, et les services gourmands en calcul. Serveur sans GPU (Proxmox) : Optimisé pour l’automatisation, le monitoring, et le stockage rapide (Redis, bases de données). NAS Synology : Principalement utilisé pour le stockage et quelques services légers. Objectifs principaux # Centraliser mes services avec une gestion simplifiée. Automatiser les configurations pour faciliter les déploiements futurs. Exploiter des outils modernes pour l’efficacité et la sécurité. Le but n’est pas d’en faire trop mais de créer un environnement de développement que je controle parfaitement et qui ne se met pas en travers de mon chemin, avec en bonus des services qui pourront améliorer mon confort et me permettre d’éviter d’utiliser des logiciels propriétaires.