Aller au contenu

Docker

Toute la couche applicative tourne en conteneurs, orchestrée par un projet compose unique.

Orchestration — projet tichnou

  • /srv/docker/compose.yaml (projet name: tichnou) inclut (include:) un compose/<stack>/docker-compose.yml par domaine, chacun avec son project_directory et son env_file: [network.env, compose/<stack>/.env]. Remplace l'ancien Makefile.
  • Toutes les commandes se lancent depuis /srv/docker :
cd /srv/docker
docker compose up -d                 # démarre TOUT
docker compose up -d homeassistant   # un seul service
docker compose ps                    # état
docker compose logs -f <service>     # logs
docker compose build <image-locale>  # rebuild d'une image maison

Arborescence

/srv/docker/
  compose.yaml        projet unique (include de chaque stack)
  network.env         IP statiques centralisées (IP_<SERVICE>=172.16.0.x)
  .env                master des secrets (superset)
  compose/<stack>/    docker-compose.yml + .env (épuré)   (mail: + mailu.env)
  build/<image>/      sources des images buildées (Dockerfile)
  cache/<app>/        données régénérables (EXCLU des backups)
  volumes/<service>/  données bind-montées (persistées + sauvegardées)

Les stacks

Stack Services Rôle
management portainer, vscode, dockmate outillage admin
edge nginx (NPM), crowdsec, wireguard, authelia reverse-proxy, sécurité, VPN, SSO
data mariadb, timescaledb, redis, pgadmin bases de données partagées
domotique homeassistant, zigbee2mqtt, emqx, nodered, esphome, frigate domotique + MQTT + NVR
monitoring grafana, prometheus, loki, cadvisor, gatus… observabilité
mail mailu-* (8 conteneurs) serveur mail Mailu
media jellyfin, deluge, romm, music-assistant… médias / audio
apps comptes, actions-manager apps perso (FastAPI + React)
immich immich-server/-postgres/-redis/-ml photos/vidéos
ironscribe ironscribe_db, ironscribe_api projet autonome (hors compose unique)

Voir aussi