$ Cluster Proxmox VE
Deux nœuds x86_64 + Raspberry PiObjectif — Obtenir un quorum stable à trois votes sans acheter un troisième serveur complet : deux nœuds x86_64 (pve1, pve2) sont complétés par un Raspberry Pi jouant le rôle de témoin de quorum Corosync. Sans ce troisième vote, l'arrêt d'un seul nœud suffirait à faire perdre le quorum au cluster.
Tests réalisés
- ›Arrêt volontaire d'un nœud : vérification du maintien du quorum et de la bascule des services.
- ›Perte du QDevice seul : le cluster conserve deux votes sur trois et reste opérationnel.
- ›Scénario combiné (nœud + QDevice) : validation du comportement attendu en perte de quorum.
Bonnes pratiques
- ›Adresses IP fixes sur les trois machines.
- ›Raspberry Pi raccordé en Ethernet et non en Wi-Fi : le témoin de quorum ne doit pas dépendre du sans-fil.
- ›Onduleur sur le cluster.
- ›Supervision via Zabbix.
- ›Sauvegarde du répertoire /etc/pve/, qui porte toute la configuration du cluster.
Limites identifiées
- ›Le Raspberry Pi ne porte aucune machine virtuelle : ce n'est pas un troisième nœud, seulement un arbitre.
- ›Évolution prévue vers un cluster à trois nœuds réels.
Pile technique
- Proxmox VE
- Corosync
- corosync-qnetd
- corosync-qdevice
- Raspberry Pi
$ Pi-hole
Conteneur LXC sur ProxmoxObjectif — Filtrer la publicité et le pistage au niveau du réseau plutôt que sur chaque appareil. Pi-hole agit comme trou noir DNS : tout équipement du réseau est protégé sans installation locale, y compris ceux sur lesquels on ne peut rien installer (téléviseurs, objets connectés).
Sécurisation
- ›Adresse IP statique obligatoire : un serveur DNS qui change d’adresse coupe tout le réseau.
- ›Pare-feu (UFW) restreint aux seuls ports DNS et administration web.
- ›Mot de passe administrateur changé dès l’installation.
- ›Niveau de confidentialité des journaux ajusté selon le contexte (usage personnel ou conformité RGPD).
Bonnes pratiques
- ›Choix du LXC plutôt que d’une VM : démarrage quasi instantané et empreinte mémoire de 300 à 400 Mo.
- ›Dimensionnement de 512 Mo (petit réseau) à 4 Go de RAM selon le volume de requêtes DNS.
$ Caddy
Conteneur LXC dédié sur ProxmoxObjectif — Accéder aux services internes par des noms de domaine lisibles (fossflow.memel.lab) plutôt que par des couples adresse IP / port. Le confort d'usage n'est pas le seul gain : un nom stable survit à un changement d'adresse ou de port du service sous-jacent.
Sécurisation
- ›HTTPS local par `tls internal`, ou certificats via DNS Challenge Cloudflare.
- ›Aucun port exposé sur Internet : l’accès distant passe par Tailscale, jamais par une redirection de port.
Bonnes pratiques
- ›Séparation stricte des rôles : un LXC pour le DNS (Pi-hole), un LXC pour le proxy (Caddy).
- ›Sous-domaines préférés aux sous-chemins : plus lisible, et évite les réécritures d’URL fragiles.
- ›Sauvegarde régulière du Caddyfile, journaux suivis via journalctl.
Pile technique
- Caddy
- LXC
- HTTPS
- Cloudflare DNS
- Let’s Encrypt
$ Tailscale
Agent sur les hôtes et conteneursObjectif — Atteindre l'ensemble du home lab à distance alors que l'installation est en double NAT — box opérateur puis routeur personnel. Dans cette configuration, la redirection de port est soit impossible, soit à demander à l'opérateur ; un VPN mesh basé sur WireGuard contourne le problème en établissant les connexions depuis l'intérieur du réseau.
Sécurisation
- ›Double authentification activée sur le compte Tailscale : ce compte est la clé de toute l’infrastructure.
- ›Listes de contrôle d’accès (ACL) restreignant les échanges entre appareils.
Bonnes pratiques
- ›MagicDNS : accès aux machines par nom plutôt que par adresse.
- ›Subnet Router : tout le réseau 192.168.1.0/24 est joignable depuis un unique point d’entrée, sans installer l’agent partout.
Pile technique
- Tailscale
- WireGuard
- MagicDNS
- Subnet Router
$ Gitea
Conteneur DockerObjectif — Conserver la maîtrise du code, des scripts et de la documentation technique du home lab, sans dépendre d'un service tiers. Écrit en Go, Gitea tourne confortablement là où GitLab demanderait plusieurs gigaoctets de mémoire.
Sécurisation
- ›Inscription publique désactivée : sans cela, une instance exposée se remplit de comptes automatisés.
- ›Double authentification sur le compte administrateur.
- ›Sauvegardes régulières du dossier de données.
Bonnes pratiques
- ›Conteneur unique avec base SQLite embarquée et volumes persistants.
- ›Dépôts organisés par domaine : homelab-configs, scripts-sysadmin, ad-setup, zabbix-templates, cours-bts.
$ FossFLOW
Conteneur DockerObjectif — Produire des schémas isométriques de la topologie réseau, du cluster Proxmox et de l'architecture Active Directory. Un schéma à jour rend une infrastructure explicable à un tiers — condition d'un vrai transfert de connaissances.
Bonnes pratiques
- ›Diagrammes stockés en JSON sur le serveur, sauvegardés automatiquement.
- ›Complémentarité assumée : FossFLOW pour l’isométrie 3D, Excalidraw pour les croquis 2D rapides.
$ Bot Discord
Docker (comparé à LXC, VM et machine physique)Objectif — Automatiser des notifications tout en servant de banc d'essai pour comparer concrètement les environnements de déploiement légers : Docker, LXC, machine virtuelle et machine physique, avec le dimensionnement processeur, mémoire et stockage de chacun.
Sécurisation
- ›Secrets (jeton du bot) isolés dans un fichier .env, jamais versionné.
Bonnes pratiques
- ›Architecture modulaire par Cogs : chaque fonctionnalité est un module rechargeable indépendamment.
- ›Redémarrage automatique via `--restart always` ou une unité systemd.
Pile technique
- Python
- discord.py
- Docker
- systemd