Mon montage de homelab
(bryananthonio.com)- Retour d’expérience sur la conversion d’un PC gaming assemblé en 2018 en serveur domestique pour le stockage de données, les sauvegardes et l’hébergement d’applications auto-hébergées
- Installation de TrueNAS Community Edition et configuration de deux HDD de 8 To en RAID 1 pour la redondance des données
- Utilisation d’applications open source auto-hébergées comme Immich, Backrest, Scrutiny, Mealie et Ollama pour couvrir la gestion des photos, les sauvegardes, la surveillance des disques, la gestion de recettes et l’exécution de LLM
- L’accès externe passe par Tailscale VPN, avec un projet futur d’amélioration de l’accessibilité des services via des domaines personnalisés
Configuration matérielle
- Réutilisation telle quelle d’un PC gaming assemblé en 2018
- CPU : AMD Ryzen 5 2600X (6 cœurs, 3,6 GHz)
- Carte mère : ASRock B450 Pro4 ATX AM4
- RAM : G.Skill Flare X 16GB DDR4-3200 (2x8GB)
- GPU : EVGA GeForce GTX 1070 Ti 8GB
- Boîtier : Fractal Design Meshify C
- Alimentation : SeaSonic PRIME Gold 650W
- Configuration du stockage
- HDD : Western Digital Red Plus 8TB x2 (achetés pendant les vacances d’hiver)
- SSD : Samsung 850 Evo 500GB (pour les applications auto-hébergées nécessitant des lectures/écritures rapides)
- NVMe : Western Digital Blue SN550 500GB (pour l’installation de TrueNAS OS)
Système d’exploitation TrueNAS
- Installation de TrueNAS Community Edition (version 25.10.1, Goldeye) sur le disque NVMe
- Système d’exploitation spécialisé NAS, basé sur Linux, permettant à tous les appareils du réseau d’accéder au stockage de fichiers
- Présence d’une fonction de snapshots pour prévenir la perte de données
- Même si un fichier est supprimé par erreur, il peut être restauré depuis un snapshot antérieur qui le contient
- Pour qu’un fichier soit réellement supprimé, il ne doit plus exister aucun snapshot du système qui le contient
- Création automatique de snapshots horaires, quotidiens et hebdomadaires, avec suppression automatique des anciens snapshots après un certain délai pour économiser l’espace de stockage
- Deux HDD de 8 To configurés en RAID 1 (mirroring) afin de préserver intégralement les données même en cas de panne d’un disque
Applications auto-hébergées
-
Scrutiny
- Tableau de bord web pour surveiller l’état des disques de stockage
- Lecture et visualisation des métriques telles que la température, le temps de fonctionnement ou les erreurs de lecture collectées par le firmware S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) intégré aux HDD et SSD
- Les tendances historiques affichées dans le tableau de bord permettent une détection précoce des pannes de disque
-
Backrest
- Frontend web pour restic (outil de sauvegarde en ligne de commande)
- Configuration de sauvegardes quotidiennes automatiques vers un bucket de stockage objet Backblaze B2
-
Immich
- L’une des applications open source auto-hébergées les plus populaires pour la gestion des photos et vidéos
- Prise en charge de la sauvegarde automatique des photos et vidéos des appareils mobiles via les applications iOS/Android
- Bien adapté pour réduire la dépendance à Google Photos ou iCloud, et actuellement utilisé pour sauvegarder les photos et vidéos du téléphone
-
Mealie
- Outil de gestion de recettes qui a nettement amélioré l’expérience de meal prep
- En saisissant simplement l’URL d’une recette trouvée sur des sites comme NYT Cooking, l’application récupère automatiquement les ingrédients et les étapes pour les enregistrer dans la bibliothèque
- Permet de suivre et gérer facilement les recettes en ligne à essayer plus tard
-
Ollama
- Backend pour exécuter différents modèles d’IA
- Exécution de LLM comme
qwen3.5:4b,gemma3:4bet de modèles d’embedding vectoriel commeqwen3-embedding:4b - Tous les modèles sont suffisamment petits pour tenir dans les 8GB de VRAM du GPU
- Avantage : possibilité de déporter l’exécution des modèles sur le homelab plutôt que sur l’ordinateur portable
Accès distant
- Depuis l’extérieur, utilisation de Tailscale (service VPN plug-and-play) pour accéder à distance aux données et aux applications auto-hébergées
- Tailscale est construit au-dessus de WireGuard et fournit un tunnel sécurisé vers le réseau domestique
- Aucune nécessité d’exposer le PC du homelab à l’Internet public
- Il faut installer l’application Tailscale sur tous les appareils devant accéder à distance au réseau, puis les authentifier
Projets à venir
- Actuellement, l’accès aux applications nécessite de saisir directement la combinaison adresse IP + numéro de port de la machine
- Comme tous les services partagent la même IP, le gestionnaire de mots de passe ne parvient pas à distinguer les identifiants de connexion de chaque service
- Projet d’attribuer à l’avenir un nom de domaine personnalisé à chaque service afin d’améliorer l’accessibilité et l’efficacité de gestion
5 commentaires
J’ai commencé avec un POGO, un BeagleBone Black, un mini-PC Lenovo, etc., puis je me suis installé sur le N100 depuis il y a deux ans. En tenant compte de la facture d’électricité, c’est idéal pour les fonctions hors GPU.
Si cette personne a poussé son homelab à ce niveau, la facture d’électricité doit faire peur, non ?
Même si c’est un PC gaming, il ne sera pas en pleine charge en permanence, donc je ne pense pas que la facture d’électricité soit très inquiétante.
Avec un 2600X, on est déjà à 30 W au repos, et le GPU doit sans doute consommer autour de 10 W aussi, donc ça consomme nettement plus qu’un home lab configuré avec un CPU basse consommation.
En ne comptant que le CPU + le GPU, on doit être à peu près au même niveau que la consommation au repos d’un N100 avec 3 ou 4 disques durs en plus.
Réactions sur Hacker News
Tous mes services partagent la même IP, donc mon gestionnaire de mots de passe ne sait pas toujours quels identifiants utiliser
Dans Bitwarden, on peut modifier l’algorithme de correspondance : en remplaçant la valeur par défaut par « starts with », on peut éviter les mauvaises correspondances d’entrées
En revanche, si on change ce réglage, un avertissement s’affiche pour dire que « ce n’est peut-être pas intentionnel », ce qui est un peu pénible
Dans un environnement homelab, on peut facilement mettre en place un DNS wildcard avec dnsmasq, et même sans administrer directement le routeur, le fichier hosts suffit
mdns peut aussi servir pour la même raison, mais la configuration est un peu plus complexe
J’y ai ajouté Tailscale, ce qui permet aussi de bloquer les pubs depuis l’extérieur et d’accéder à mes services hors de chez moi
J’ai ensuite ajouté un reverse proxy NGINX, mais en réalité, tout fonctionne déjà très bien sans
Chaque service est séparé sous la forme
<service>.<yourdomain>.<tld>, et HTTPS est fourni gratuitementL’accès à distance fonctionne sans Tailscale, et avec Cloudflare Access on peut aussi utiliser l’authentification Google ou Github
J’utilise moi aussi une configuration similaire
Comme la machine sert aussi de station de travail, elle est un peu plus musclée
J’exploite plusieurs sous-domaines avec nginx + wildcard letsencrypt, et au lieu de tailscale j’utilise wireguard pour relier le réseau familial
Je streame films et séries avec Jellyfin, et j’envoie la musique sur plusieurs enceintes avec Mopidy + snapcast
J’ai monté un NAS avec Ubuntu + miroir ZFS, et je pilote l’automatisation avec Home Assistant
Je gère les caméras de sécurité avec Frigate, j’héberge mes dépôts personnels avec Forgejo
Je fais aussi du suivi d’avions avec SDR, et je contrôle localement tous les appareils IoT de la maison
Il est vivement conseillé d’avoir un matériel dédié au serveur
J’utilise toujours TrueNAS basé sur FreeBSD
Je regrette que la nouvelle version soit passée à Linux, même si cela peut être un meilleur choix pour d’autres
Dans mon cas, j’ai séparé NAS, virtualisation et routage sur des machines distinctes
Le nouveau TrueNAS était plus lent qu’avant, mais la gestion d’applications façon Docker est simple, donc cela peut convenir aux débutants ou aux petites entreprises
Plus on construit son infrastructure, plus le coût marginal de nouvelles expérimentations baisse, donc je pense que tous ces essais valent le coup
La plupart du temps, Linux + NFS ou SMB suffisent
Réduire les couches inutiles permet une exploitation bien plus stable
Quand la famille n’a plus internet ou de films le week-end, les plaintes sont nombreuses
C’est dommage, car le Mac Mini est très efficace énergétiquement comme serveur
Le plan est ensuite de séparer le NAS et le serveur de calcul
L’auteur utilisait Restic + Backblaze B2, mais moi je préfère la combinaison Restic + BorgBase
BorgBase a pour atouts une tarification simple et un bon service,
et Pikapods, de la même société, peut aussi intéresser les utilisateurs de homelab
C’est moins cher, à 5 dollars par mois pour 1 To
La plupart parlent uniquement de sauvegarde cloud, mais moi je réfléchis à placer un serveur de sauvegarde chez un ami
Le matériel est bon marché, les logiciels sont open source, mais la vie privée est plus compliquée
Grâce à Wireguard ou Tailscale, ce type de sauvegarde hors site est devenu plus simple
Je me demande si quelqu’un a déjà essayé ce genre de configuration
Je compte étendre le même principe chez des amis
J’utilise Immich au lieu d’iCloud pour les photos, et grâce à Tailscale il est plus simple de garantir la confidentialité
J’utilise ZFS + zrepl pour répliquer les snapshots, et je partage un billet sur le dépannage mis en forme par une IA
Au début, je sauvegardais en local, puis je transportais physiquement le disque pour ne faire ensuite que de la synchronisation incrémentale
La fonction untrusted peer de Syncthing permet de prêter de l’espace de stockage à un ami tout en gardant les données chiffrées
Un PC de homelab consomme bien moins d’électricité qu’un desktop classique
Le desktop de l’exemple consomme 600 kWh par an, alors que mon HP EliteDesk tourne autour de 100 kWh
Si on n’a pas besoin de GPU, un portable suffit largement
Recycler un ancien PC gamer pour TrueNAS ou OMV est un bon choix
Pour la stabilité, les HDD doivent être connectés en SATA plutôt qu’en USB
Quelqu’un plaisante en disant que les prix des HDD restent élevés à cause de la demande des datacenters IA
Les réglages BIOS et powertop permettent d’optimiser l’économie d’énergie
Ajouter d’autres services au-dessus d’un OS de NAS donne l’impression d’une architecture inversée
Il semble préférable de partir d’un OS serveur classique et d’y ajouter les fonctions NAS
La plupart des services tournent en bare metal, tandis que Home Assistant ou Nextcloud sont isolés dans des conteneurs
Je construis actuellement un cluster Kubernetes basé sur Talos Linux, réparti sur plusieurs maisons
Les sites sont reliés via Wireguard, avec une box ZFS dans chaque zone pour répliquer les snapshots
Traefik sert de passerelle, et CrunchyPGO sépare les rôles leader/follower
Je fais tourner TrueNAS dans une VM sur xcp-ng
J’ai connecté un contrôleur SAS dédié en passthrough, j’utilisais autrefois esxi mais j’ai tout migré vers xcp-ng
J’ai configuré bind9 pour le DNS et nginx pour le reverse proxy
Je fais aussi tourner d’autres VM sur un Dell OptiPlex Micro
La plupart des homelabs n’ont pas une charge très lourde, donc l’essentiel est la quantité de RAM et l’efficacité énergétique
Une machine basse consommation à 4 cœurs suffit largement
Comme je fais très peu de calcul IA, je n’ai pas besoin de performances de niveau desktop