Runbook — Ajouter un conteneur¶
Convention complète, illustrée par le wiki (172.16.0.51) lui-même.
1. Réserver une IP — network.env¶
Wiki :
IP_WIKI = 172.16.0.51(.50=gatus était la dernière).
2. Créer la stack — compose/<stack>/¶
compose/<stack>/docker-compose.yml en suivant le gabarit :
image/build, container_name, restart: unless-stopped, user: "1000:996",
networks.dockernet.ipv4_address: ${IP_MONSERVICE}, volumes sous /srv/docker/volumes/<svc>/,
healthcheck, et le bloc networks: { dockernet: { external: true } }.
Plus compose/<stack>/.env (au moins TZ, aucun secret en dur).
3. Brancher dans l'orchestration — compose.yaml¶
- path: compose/<stack>/docker-compose.yml
project_directory: compose/<stack>
env_file:
- network.env
- compose/<stack>/.env
4. Démarrer & vérifier¶
cd /srv/docker
docker compose build <service> # si image maison
docker compose up -d <service>
docker compose ps # healthy ?
curl -s http://172.16.0.NN:<port>/ # accès interne direct
5. Exposer via NPM (si service web)¶
UI http://127.0.0.1:81 → Proxy Hosts → Add :
- Domain monservice.tichnou.fr · Forward 172.16.0.NN : <port> · scheme http
- Block Common Exploits, Websockets si besoin
- Onglet SSL : Let's Encrypt, Force SSL, HTTP/2
6. Protéger avec Authelia (forward-auth) — optionnel mais recommandé¶
Premier forward-auth de l'infra (introduit par le wiki)
- Authelia
volumes/authelia/configuration.yml→ ajouter une règleaccess_control: puis recharger :docker compose restart authelia(sauvegarder le fichier avant !). - NPM → proxy host → onglet Advanced, snippet
auth_requestvers Authelia (http://172.16.0.39:9091/api/authz/forward-auth) avec redirection versauth.tichnou.fr. Vérifier que la valeur de session couvre le sous-domaine (cookie domainetichnou.fr).
7. Sauvegarde & monitoring¶
- Données sous
/srv/docker/volumes/<svc>/→ déjà capturées parbackup.sh+ dockmate. - Ajouter une sonde Gatus (
volumes/gatus/config/config.yaml) et, si exporter Prometheus, un scrape. Healthcheck Docker → couvert par autoheal/health-alerter.
8. Documenter¶
Créer/mettre à jour la page de stack + ajouter une ligne dans le mapping Réseau et le plan dockernet.