Aller au contenu

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

IP_MONSERVICE = 172.16.0.NN   # prochaine IP libre (voir plan d'adressage)

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:81Proxy 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)

  1. Authelia volumes/authelia/configuration.yml → ajouter une règle access_control :
    access_control:
      rules:
        - domain: monservice.tichnou.fr
          policy: one_factor      # ou two_factor
    
    puis recharger : docker compose restart authelia (sauvegarder le fichier avant !).
  2. NPM → proxy host → onglet Advanced, snippet auth_request vers Authelia (http://172.16.0.39:9091/api/authz/forward-auth) avec redirection vers auth.tichnou.fr. Vérifier que la valeur de session couvre le sous-domaine (cookie domaine tichnou.fr).

7. Sauvegarde & monitoring

  • Données sous /srv/docker/volumes/<svc>/déjà capturées par backup.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.