[{"content":"Le besoin Un endroit pour présenter mon homelab et garder une trace de ce que j\u0026rsquo;apprends, sans CMS à maintenir ni base de données à sécuriser.\nLa solution Brique Rôle Hugo + thème PaperMod Génère le site à partir de fichiers Markdown Git Historique de chaque page et de chaque modification Conteneur LXC Alpine Héberge les fichiers, ~30 Mo de RAM utilisés Caddy Sert les fichiers statiques en HTTP sur le réseau local Nginx Proxy Manager Certificat Let\u0026rsquo;s Encrypt, HTTPS, en-têtes de sécurité Le flux de publication J\u0026rsquo;écris une note en Markdown sur mon PC, avec un aperçu en direct (hugo server). ./deploy.sh compile le site et l\u0026rsquo;envoie sur le conteneur via rsync (clé SSH, compte dédié). C\u0026rsquo;est en ligne. Aucun service dynamique n\u0026rsquo;est exposé : il n\u0026rsquo;y a que du HTML. Pourquoi ce choix Sécurité : pas de PHP, pas de base de données, pas de panneau d\u0026rsquo;administration en ligne. Légèreté : le conteneur tient dans 256 Mo de RAM et 2 Go de disque. Pérennité : le contenu reste du Markdown lisible, indépendant de l\u0026rsquo;outil. ","permalink":"https://enerzein.fr/projets/ce-site/","summary":"Un site statique auto-hébergé : Hugo, un conteneur Alpine de quelques Mo, et un déploiement en une commande.","title":"Ce site"},{"content":"Le besoin Avoir mes adresses sur mon propre nom de domaine, sans dépendre d\u0026rsquo;un fournisseur, et comprendre enfin comment fonctionne réellement l\u0026rsquo;envoi d\u0026rsquo;un mail.\nLa solution Poste.io (édition gratuite) : SMTP, IMAP, webmail, antispam et antivirus dans un seul conteneur Déployé avec Docker dans un conteneur LXC sous Proxmox Webmail et administration publiés derrière Nginx Proxy Manager La partie DNS, la plus importante Un serveur mail qui fonctionne, c\u0026rsquo;est surtout un serveur mail auquel les autres font confiance :\nEnregistrement Rôle MX Indique quel serveur reçoit le courrier du domaine SPF Liste les serveurs autorisés à envoyer pour le domaine DKIM Signe chaque mail sortant avec une clé publiée dans le DNS DMARC Dit aux destinataires quoi faire si SPF/DKIM échouent, et m\u0026rsquo;envoie des rapports Ce que j\u0026rsquo;en retiens La délivrabilité se joue sur la réputation : un domaine neuf doit « faire ses preuves ». DMARC en mode p=none au départ, pour observer avant de durcir la politique. ","permalink":"https://enerzein.fr/projets/serveur-mail/","summary":"Mes adresses mail sur mon propre domaine, hébergées à la maison avec Poste.io.","title":"Serveur mail auto-hébergé"},{"content":"Le besoin Une association qui gérait ses adhérents, ses dons, ses bénévoles et son matériel dans des tableurs dispersés. Objectif : tout centraliser dans un outil unique et accessible.\nLa solution Dolibarr, ERP open source, hébergé dans un conteneur dédié sur mon homelab Une instance de test séparée pour valider chaque module avant la mise en production Des modules sur mesure développés en PHP pour coller aux besoins réels Les modules développés Module Ce qu\u0026rsquo;il fait Reçus fiscaux Cerfa Génère des reçus de dons conformes au modèle Cerfa en vigueur (celui livré avec Dolibarr n\u0026rsquo;était plus à jour) Mécénat Suivi des dons et des partenaires Bénévolat Gestion des bénévoles et de leurs interventions Prêt de matériel Qui a emprunté quoi, et quand ça revient Suivi des EPI Suivi des équipements de protection individuelle Sorties Organisation des activités extérieures Saisie mensuelle, Promotion Outils de saisie et de communication internes Ce que j\u0026rsquo;en retiens Travailler avec une instance de test évite de casser l\u0026rsquo;outil que d\u0026rsquo;autres utilisent tous les jours. Un module simple et fiable vaut mieux qu\u0026rsquo;un module complet que personne n\u0026rsquo;ose toucher. ","permalink":"https://enerzein.fr/projets/dolibarr-association/","summary":"Mise en place et personnalisation de Dolibarr pour la gestion quotidienne d\u0026rsquo;une association.","title":"Un ERP Dolibarr sur mesure pour une association"},{"content":"Le besoin Une vingtaine de services auto-hébergés, dont certains doivent être accessibles depuis l\u0026rsquo;extérieur… et d\u0026rsquo;autres surtout pas (hyperviseurs, terminal web).\nL\u0026rsquo;architecture Internet ─▶ Box ─▶ IPFire (pare-feu) ─▶ Nginx Proxy Manager ─▶ conteneurs │ Pi-hole (DNS local) IPFire virtualisé, avec une carte réseau dédiée côté Internet : seuls les ports nécessaires entrent. Nginx Proxy Manager comme unique porte d\u0026rsquo;entrée web, avec certificats Let\u0026rsquo;s Encrypt. Conteneurs LXC non privilégiés pour isoler chaque service. Public ou réservé au LAN Les interfaces sensibles sont protégées par une Access List dans NPM qui n\u0026rsquo;autorise que le réseau local. Depuis Internet : erreur 403.\nDeux pièges rencontrés, détaillés dans cette note :\nUn bloc location / personnalisé désactive silencieusement l\u0026rsquo;Access List. Depuis le LAN, le domaine résout vers l\u0026rsquo;IP publique : la box masque l\u0026rsquo;IP source et on se bloque soi-même. Solution : des enregistrements DNS locaux dans Pi-hole. Prochaines étapes VPN pour accéder aux services « LAN only » depuis l\u0026rsquo;extérieur Proxmox Backup Server pour des sauvegardes incrémentales et vérifiées ","permalink":"https://enerzein.fr/projets/homelab-securise/","summary":"Pare-feu, reverse proxy, accès réservés au réseau local et DNS interne : comment j\u0026rsquo;expose mes services sans tout ouvrir.","title":"Sécuriser un homelab exposé sur Internet"},{"content":"Le besoin Jouer entre amis sur nos propres serveurs : pas d\u0026rsquo;abonnement, nos règles, nos mods.\nLa solution Chaque jeu tourne dans son propre conteneur LXC sur Proxmox. Les serveurs inutilisés restent éteints : ils ne consomment rien et ne sont pas exposés.\nService Usage BeamMP Multijoueur pour BeamNG.drive Palworld Serveur dédié, démarré à la demande Enshrouded Serveur dédié, démarré à la demande Crafty Controller Gestion de serveurs Minecraft via une interface web Mumble Chat vocal léger et auto-hébergé pour jouer ensemble Ce que j\u0026rsquo;en retiens Un conteneur par jeu = une mise à jour ou une erreur sur l\u0026rsquo;un n\u0026rsquo;impacte jamais les autres. Les serveurs de jeux sont gourmands en RAM : les éteindre quand ils ne servent pas libère de la place pour le reste du homelab. ","permalink":"https://enerzein.fr/projets/serveurs-de-jeux/","summary":"BeamMP, Palworld, Enshrouded, Minecraft… des serveurs de jeux pour jouer entre amis, chacun dans son conteneur.","title":"Serveurs de jeux maison"},{"content":"Le contexte Je voulais réserver l\u0026rsquo;interface Proxmox et un terminal web à mon réseau local. Dans Nginx Proxy Manager, rien de plus simple : une Access List qui autorise le LAN, et un deny all ajouté automatiquement.\nL\u0026rsquo;interface affichait bien « LAN Only » sur les hôtes… et pourtant, depuis la 4G, la page de connexion Proxmox s\u0026rsquo;affichait toujours.\nLe diagnostic Les logs d\u0026rsquo;accès montraient des requêtes venant d\u0026rsquo;une IP publique avec un code 200 :\ntail -f /data/logs/proxy-host-*_access.log Et la configuration générée ne contenait aucune directive allow ou deny :\ngrep -n \u0026#34;allow\\|deny\u0026#34; /data/nginx/proxy_host/*.conf La cause Pour que la console noVNC de Proxmox fonctionne, j\u0026rsquo;avais mis un bloc location / { … } complet dans l\u0026rsquo;onglet Advanced de l\u0026rsquo;hôte.\nNPM écrit normalement les règles de l\u0026rsquo;Access List dans son propre location /. Quand on en définit un soi-même, NPM ne génère plus le sien… et les règles disparaissent avec, sans le moindre avertissement.\nLa correction Ajouter les règles directement dans le bloc personnalisé :\nlocation / { allow 192.168.0.0/24; # votre LAN deny all; proxy_pass https://IP_DU_PROXMOX:8006; # … reste de la configuration } Le piège suivant : se bloquer soi-même Depuis le LAN, le nom de domaine résout vers l\u0026rsquo;IP publique. La requête fait un aller-retour par la box, qui remplace l\u0026rsquo;IP source par la sienne : NPM refuse donc l\u0026rsquo;accès.\nSolution : un enregistrement DNS local (Pi-hole) qui fait pointer ces noms directement vers l\u0026rsquo;IP de NPM.\nÀ retenir Un location / dans Advanced = l\u0026rsquo;Access List de NPM ne s\u0026rsquo;applique plus. Toujours tester depuis l\u0026rsquo;extérieur (4G) après avoir restreint un accès. Un service « LAN only » a besoin d\u0026rsquo;un DNS local, sinon on s\u0026rsquo;enferme dehors. ","permalink":"https://enerzein.fr/notes/npm-access-list-location/","summary":"Une Access List « LAN only » affichée dans NPM… mais totalement ignorée. Le coupable : un bloc location / dans l\u0026rsquo;onglet Advanced.","title":"Nginx Proxy Manager : quand l'Access List ne protège rien"},{"content":"Technicien informatique le jour, bidouilleur d\u0026rsquo;infrastructure le soir.\nCe site présente mon homelab auto-hébergé et me sert de carnet de notes : ce que j\u0026rsquo;installe, ce qui casse, et comment je le répare.\n","permalink":"https://enerzein.fr/a-propos/","summary":"\u003cp\u003eTechnicien informatique le jour, bidouilleur d\u0026rsquo;infrastructure le soir.\u003c/p\u003e\n\u003cp\u003eCe site présente mon \u003cstrong\u003ehomelab\u003c/strong\u003e auto-hébergé et me sert de carnet de notes :\nce que j\u0026rsquo;installe, ce qui casse, et comment je le répare.\u003c/p\u003e","title":"À propos"},{"content":"Matériel Hyperviseur principal : Proxmox VE sur un Intel Core i5-10500, 32 Go de RAM NAS : un second Proxmox avec plusieurs pools ZFS (≈ 7 To de disques) Réseau Pare-feu / routeur IPFire virtualisé, avec une carte réseau dédiée côté Internet Reverse proxy Nginx Proxy Manager avec certificats Let\u0026rsquo;s Encrypt DNS local et filtrage avec Pi-hole Les interfaces d\u0026rsquo;administration ne sont accessibles que depuis le réseau local Services auto-hébergés Catégorie Services Sécurité Vaultwarden Photos \u0026amp; fichiers Immich, PairDrop Productivité Joplin Server, Vikunja, DocuSeal, BentoPDF Communication Serveur mail Poste.io, Mumble, RustDesk Supervision Uptime Kuma, tableau de bord Jeux Serveurs BeamMP et autres à la demande Presque tout tourne dans des conteneurs LXC non privilégiés (Alpine ou Debian).\nSauvegardes Sauvegardes Proxmox planifiées vers le NAS. Prochaine étape : Proxmox Backup Server.\n","permalink":"https://enerzein.fr/homelab/","summary":"\u003ch2 id=\"matériel\"\u003eMatériel\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHyperviseur principal\u003c/strong\u003e : Proxmox VE sur un Intel Core i5-10500, 32 Go de RAM\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNAS\u003c/strong\u003e : un second Proxmox avec plusieurs pools ZFS (≈ 7 To de disques)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"réseau\"\u003eRéseau\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePare-feu / routeur \u003cstrong\u003eIPFire\u003c/strong\u003e virtualisé, avec une carte réseau dédiée côté Internet\u003c/li\u003e\n\u003cli\u003eReverse proxy \u003cstrong\u003eNginx Proxy Manager\u003c/strong\u003e avec certificats Let\u0026rsquo;s Encrypt\u003c/li\u003e\n\u003cli\u003eDNS local et filtrage avec \u003cstrong\u003ePi-hole\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eLes interfaces d\u0026rsquo;administration ne sont accessibles que depuis le réseau local\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"services-auto-hébergés\"\u003eServices auto-hébergés\u003c/h2\u003e\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003cth\u003eCatégorie\u003c/th\u003e\n\t\t\t\t\t\u003cth\u003eServices\u003c/th\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eSécurité\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eVaultwarden\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003ePhotos \u0026amp; fichiers\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eImmich, PairDrop\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eProductivité\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eJoplin Server, Vikunja, DocuSeal, BentoPDF\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eCommunication\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eServeur mail Poste.io, Mumble, RustDesk\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eSupervision\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eUptime Kuma, tableau de bord\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\t\t\u003ctr\u003e\n\t\t\t\t\t\u003ctd\u003eJeux\u003c/td\u003e\n\t\t\t\t\t\u003ctd\u003eServeurs BeamMP et autres à la demande\u003c/td\u003e\n\t\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003ePresque tout tourne dans des \u003cstrong\u003econteneurs LXC non privilégiés\u003c/strong\u003e (Alpine ou Debian).\u003c/p\u003e","title":"Mon homelab"}]