33800 Docs

← Retour

Proposition : Remplacer les IPs hardcodees par des noms DNS Pi-hole

Date : 15/02/2026 Status : EN ATTENTE Contexte : Audit ai-orchestrator U-01 + regle CLAUDE.md "JAMAIS d'IP:port dans le code" Origine : Decision utilisateur lors de la revue d'audit


Probleme

Plusieurs projets utilisent des IPs hardcodees dans le code ou les configs :

Si une IP change (ex: win11 passe de .30 a .31), il faut modifier le code source de chaque projet.

Solution : Noms DNS via Pi-hole

Pi-hole (sur prod-portainer) gere deja le split-DNS pour *.33800.nowhere84.com → nginx. On peut ajouter des Local DNS Records dans Pi-hole pour les hosts internes :

Nouveaux records DNS Pi-hole proposes

Hostname IP Usage
pve.internal.nowhere84.com 192.168.1.4 Hyperviseur PVE
prod-portainer.internal.nowhere84.com 192.168.1.12 Docker PROD
nginx.internal.nowhere84.com 192.168.1.104 Reverse proxy
gitlab.internal.nowhere84.com 192.168.1.196 GitLab
win11.internal.nowhere84.com 192.168.1.30 GPU / Ollama / IA
dev-portainer.internal.nowhere84.com 192.168.1.51 Docker DEV
vscode.internal.nowhere84.com 192.168.1.154 VSCode
jellyfin.internal.nowhere84.com 192.168.1.199 Jellyfin

Pattern : <nom>.internal.nowhere84.com pour les hosts internes (pas de confusion avec les sous-domaines publics *.33800.nowhere84.com qui passent par nginx).

Qui resout via Pi-hole ?

Machine DNS Resout .internal ?
prod-portainer Pi-hole (192.168.1.12) OUI — les containers Docker aussi
dev-portainer Pi-hole OUI
PVE Pi-hole OUI
win11 Pi-hole OUI
nginx Freebox (192.168.1.254) NON — proxy_pass reste en IP

Important : nginx n'utilise PAS Pi-hole comme DNS. Les proxy_pass dans les configs nginx continuent d'utiliser des IPs. Seul le code applicatif (dans les containers Docker) beneficie du DNS Pi-hole.

Projets impactes

ai-orchestrator

connectors-api

ulias-org

conf.prod.gouroubleu.yml

Mise en oeuvre

  1. Ajouter les records DNS dans Pi-hole (Local DNS Records, interface web ou via API)
  2. Tester la resolution depuis prod-portainer : nslookup win11.internal.nowhere84.com
  3. Mettre a jour conf.prod.gouroubleu.yml : remplacer les IPs par les noms DNS dans les env vars
  4. Redeploy les services via CI/CD
  5. Verifier que chaque service resout bien les noms

Avantages

Risques

Decision

En attente de validation utilisateur.