HOMELAB ETUDIANT
Conception et Administration d’un Serveur Proxmox tout-en-un | 6 à 12 mois
D’où ça a commencé : Un NAS, puis bien plus
Au départ, c’était simple : je voulais un NAS pour stocker mes fichiers. Pratique, économe. Du coup j’ai récupéré un vieux PC et boom, c’était cool. Mais plus j’avançais, plus je voulais : pourquoi pas du streaming vidéo ? Pourquoi pas un serveur Minecraft pour mes amis ? Pourquoi pas un environnement de cours isolé ?
Un jour j’ai réalisé : je ne construisais pas juste un NAS, je construisais une infrastructure. Autant la faire correctement.
L’objectif et l’architecture globale
Je voulais un serveur tout-en-un capable de gérer le stockage centralisé (NAS avec redondance), du streaming vidéo (Jellyfin), un serveur de jeu (Minecraft) pour les amis, et des VMs de cours isolées pour l’apprentissage. Le tout sécurisé, accessible à distance, et sans dépendre d’un hébergeur.
Pour le matériel, j’ai visé ~400€ et j’ai légèrement dépassé (450-550€). Voici la spec exacte:
Hardware:
- CPU: Intel Core i7 8ème génération (occasion) – 6 cœurs / 12 threads
- RAM: 32 Go DDR4 (critique pour Proxmox + ZFS + Docker + Windows)
- GPU: NVIDIA RTX 3060 12Go (pour transcodage Jellyfin temps réel et gaming)
- Stockage OS: SSD NVMe 500Go (dédié à Proxmox VE)
- Stockage Data: 5x disques HDD 4To en RAIDZ2 (ZFS) → 12 To utiles avec redondance 2-disques (perte tolérée de 2 disques sans perte de données)
- Routeur: Freebox Revolution (DHCP principal)
- Réseau: Xiaomi en mode Point d’Accès (éviter double NAT)
- Réseau interne: 192.168.1.x
Budget détaillé:
- CPU + RAM + GPU (occasion): ~300€
- SSD NVMe: ~50€
- 5x HDD 4To: ~200€
- Total: ~550€ (au lieu de 300-500€/mois chez un hébergeur)
L’infrastructure logicielle : Virtualisation complète sous Proxmox VE
Tout tourne dans des VMs isolées sous Proxmox, chacune avec sa responsabilité bien définie :
- VM TrueNAS Scale (Le Stockage) Le cœur du système. Les 5 disques HDD sont passés en passthrough directement au contrôleur SATA (Proxmox ne les touche pas). TrueNAS gère :
- ZFS RAIDZ2 (filesystem + redondance parity 2-disques)
- Partages SMB/NFS (accès depuis les autres VMs et clients)
- Permissions granulaires (qui peut accéder à quoi)
- Snapshots et clones (utiles pour les backups)
- VM Windows (Gaming) Un serveur de jeu dédié:
- Minecraft Java + Bedrock
- Accès au NAS via SMB
- GPU passthrough pour la puissance de rendu
- Accessible via Tailscale VPN pour les amis
- VM Debian + CasaOS (Multimédia & Apps) Héberge les services critiques :
- Jellyfin (streaming vidéo) avec transcodage GPU en temps réel
- Nextcloud (cloud personnel, gestion fichiers)
- Pihole (DNS + blocage pubs au niveau réseau)
- Home Assistant (domotique, automations)
- Docker pour gérer les conteneurs
- GPU passthrough pour transcoder les films à la volée
- VM Debian (Environnement de Cours) Un sandbox jetable pour l’apprentissage :
- Tester des configs sans risquer l’infra principale
- Peut-être cassée, reset, recréée sans impact
Le défi qui m’a vraiment marqué : Splunk et la centralisation des logs
À un moment, j’avais une infrastructure mais je ne voyais rien de ce qu’il se passait dedans. Les logs traînaient partout (TrueNAS par ici, Jellyfin par-là, Proxmox ailleurs, Docker containers ailleurs) zéro visibilité, zéro alertes, rien.
Je me suis dit : il faut un vrai SIEM pour monitorer tout ça. D’où Splunk.
Splunk, c’est puissant mais ça demande de savoir vraiment quoi faire avec les logs. Ce n’est pas juste « je branche un câble et ça marche ». Il a fallu :
- Configurer les sources de logs (agents Splunk sur Proxmox, TrueNAS, clients Docker, etc.)
- Parser les logs correctement – chaque application a son format. Fallait normaliser avec des regex
- Créer des dashboards utiles – afficher ce qui compte vraiment, pas juste du bruit
- Parser les logs de la maison – Home Assistant, Pihole, tous ces services ont leurs propres formats
J’ai passé plusieurs heures sur YouTube et les forums Splunk à comprendre comment écrire des regex pour parser des logs bizarres, comment indexer efficacement (Splunk peut devenir très gourmand en CPU/disque), comment créer des alertes pertinentes.
Le truc complexe : la détection de force brute. J’ai lancé une simulation d’attaque (plusieurs tentatives de connexion échouées rapidement sur un client) pour vérifier que Splunk levait une alerte. Au départ, ça n’a pas marché du tout. Les tentatives arrivaient dans Splunk, mais aucune alerte. Pourquoi ? Les règles de détection n’étaient pas configurées correctement. Les seuils étaient trop hauts ou les patterns ne matchaient pas précisément les logs réels.
J’ai ajusté : baissé les seuils de détection, affiné les règles pour matcher exactement le pattern d’une force brute (par exemple : plus de 5 échecs d’authentification en moins de 2 minutes = alerte). Cette fois, ça a marché.
Maintenant j’ai une visibilité complète en temps réel : quand une VM kickstart, quand Jellyfin transcodes (et consomme du GPU), quand le réseau ralentit, les patterns d’erreurs qui reviennent régulièrement. C’était frustrant au départ, mais c’est comme ça qu’on apprend le vrai monitoring (pas en cliquant dans une GUI toute faite, mais en comprenant vraiment comment les données circulent et comment les interpréter).
TrueNAS et les complexités du stockage réel

TrueNAS, ce n’était pas smooth non plus. Configurer ZFS RAIDZ2 et le passthrough des disques, c’était complexe :
- Comprendre la parity ZFS : Perdre deux disques sans perte de données, c’est cool sur le papier, mais faut l’avoir fait pour vraiment comprendre comment la reconstruction fonctionne
- L’ordre des disques dans le vdev : Pas trivial – faut qu’ils soient dans le bon ordre sinon ça casse
- Permissions SMB/NFS : Gérer qui peut lire/écrire où quand plusieurs VMs accèdent aux mêmes données
- Snapshots et clones ZFS : Super utiles pour les backups, mais faut comprendre comment ça marche
J’ai dû chercher dans des docs en anglais (StackExchange, Reddit, docs officielles ZFS) et ça m’a vraiment enfoncé les bases du stockage dans la tête. Pas juste de la théorie, de la vraie compréhension opérationnelle.
La sécurité : Tailscale et zéro port ouvert
Philosophie simple : zéro port ouvert sur la box. Tout passe par Tailscale VPN.
Comment ça marche : Tailscale tourne dans chaque VM et je configure des ACLs (Access Control Lists) granulaires pour définir qui voit quoi :
- Moi (admin) : Accès total – Proxmox, TrueNAS, toutes les VMs
- Mes amis (invités) : Accès limité via ACLs – juste Minecraft et Jellyfin, rien d’autre
- Internet public : Ne voit rien du tout
Exemple concret : Ami Toto qui joue à Minecraft ? Il se connecte à Tailscale, il ne voit que l’IP Tailscale du serveur Minecraft. Il ne voit pas TrueNAS, pas Proxmox, pas l’interface d’admin. C’est du vrai isolement.
Résultat : Un serveur exposé à distance de façon sécurisée, sans les failles classiques des ports ouverts. C’est du zero-trust appliqué à la maison.
L’automatisation : Shutdown/Wake-on-LAN programmé
Le serveur consomme de l’électricité. Du coup j’ai mis en place une automation complète pour l’extinction et le réveil programmés.
Au départ, c’était simple : des cron jobs basiques avec qm shutdown pour éteindre TrueNAS proprement, puis shutdown -h now pour fermer Proxmox. Mais j’ai réalisé que c’était fragile : si TrueNAS ne s’éteint pas assez vite, le serveur continue de tourner. Si un timeout arrive, y’a pas de fallback.
Du coup j’ai créé un script Bash plus robuste qui gère les edge cases :
Ce script :
- Logue chaque étape (utile pour debugger si ça casse)
- Attend que TrueNAS s’éteigne proprement avec timeout de 60s
- Force l’arrêt si ça traîne (fallback, évite un hang infini)
- Éteint les autres VMs avant Proxmox
- Gère les timeouts pour éviter les surprises
S’exécute chaque soir via cron :
Pour le réveil : RTC Wake-up en BIOS (réglé une fois à 09h00, ça réveille automatiquement chaque matin).
Pour le séquençage des VMs : Configuré dans Proxmox (Start/Shutdown order) :
- TrueNAS : order 1, delay 0
- CasaOS : order 2, delay 60 (attend que le NAS soit prêt)
- Windows : order 3, delay 90
Les services bonus : Pihole et Home Assistant
Tournent aussi en VMs dans Proxmox :
- Pihole : DNS au niveau réseau + blocage des pubs (tous les appareils en bénéficient)
- Home Assistant : Domotique complète (lumières, thermostats, automations)
Les logs de tout ça remontent dans Splunk pour une centralisation complète.
Ce que j’ai vraiment gagné
Virtualisation (Proxmox) : Proxmox m’a appris qu’isoler les services, ce n’est pas un luxe, c’est une nécessité. Chaque VM a sa responsibility. Si Jellyfin crash, TrueNAS continue. Si je casse quelque chose en cours d’apprentissage, les autres VMs ne sont pas affectées. C’est la base de toute infrastructure qui se respecte.
Sécurité & Réseau (Tailscale + ACLs) : J’ai compris qu’ouvrir un port, c’est flirter avec le danger. Tailscale et ACLs granulaires, c’est une bien meilleure approche. Zéro port ouvert mais accès depuis partout. C’est du vrai zero-trust.
Automatisation & Scripting : M’ont montré que la répétition peut s’éliminer avec du code, et que ça économise l’électricité et réduit la charge manuelle. C’est petit, mais ça scale.
Le side effect énorme : J’ai pris un level-up réseau dingue. Avant j’avais la théorie (cours CCNA, topo réseau). Maintenant j’ai la pratique réelle (routage, DHCP, VPN, ACLs, passthrough GPU, ZFS, Docker, monitoring). Ce n’est pas la même chose. J’ai aussi une vision de SOC maintenant grâce à Splunk (je vois comment les logs circulent, comment on détecte les anomalies, comment on répond à des incidents).
Pourquoi pas un hébergeur
Au départ j’ai regardé : « Et si je mets ça sur AWS/OVH/Hetzner ? » Les tarifs ? 300 à 500€ par mois pour du comparable. Mon infra coûte ~550€ en hardware et presque rien en électricité. En 6 à 12 mois, mon HomeLab s’est payé.
Plus important : j’apprends énormément plus en construisant qu’en utilisant une plateforme clé-en-main. Les erreurs, les débugs, les optimisations (c’est du vrai apprentissage). Les hébergeurs, tu cliques sur des boutons. Chez toi, tu fais tourner des services.
Aujourd’hui, ça tourne 24/7. Streaming vidéo autonome, serveur de jeu pour les amis, stockage centralisé sécurisé, monitoring complet. C’est cool de voir qu’on a bâti quelque chose qui fonctionne vraiment.
Métriques :
- Coût total : 550€ (vs 300-500€/mois hébergeur)
- Économie électricité : 40% (shutdown/wake programmés)
- Capacité stockage: 12 To utilize (5x4To RAIDZ2)
- Redondance : 2-disques perdus = zéro perte de données
- Uptime : 99%+ (zéro intervention depuis 6+ mois)
- Services tournant : 5 VMs + 4 services critiques (Jellyfin, Nextcloud, Pihole, Home Assistant)
Compétences rattachées à cette réalisation
- Virtualisation (isolation des services, passthrough hardware, gestion des VMs)
- Ingénierie réseau (Tailscale VPN, ACLs granulaires, zero-trust architecture)
- Automatisation & Scripting (Wake-on-LAN, shutdown programmés, gestion de l’énergie)
- Administration Système (TrueNAS, ZFS, gestion du stockage)

