46 lines
1.2 KiB
YAML
46 lines
1.2 KiB
YAML
# Plan de contrôle Stream Control.
|
|
#
|
|
# cp .env.production.example .env puis compléter
|
|
# docker compose up -d
|
|
#
|
|
# Déploiement en HTTP sur réseau privé : le port n'est PAS destiné à être exposé
|
|
# sur Internet. Voir la section « Sécurité » de DEPLOY.md.
|
|
|
|
services:
|
|
server:
|
|
image: ${IMAGE:?définir IMAGE dans .env}
|
|
container_name: stream-control
|
|
restart: unless-stopped
|
|
|
|
env_file:
|
|
- .env
|
|
|
|
environment:
|
|
# Fixés ici pour ne pas dépendre de ce que contient .env : le port interne
|
|
# est immuable, la publication se règle par BIND_ADDR/HOST_PORT.
|
|
PORT: 8080
|
|
HOST: 0.0.0.0
|
|
DB_PATH: ./data/stream-control.sqlite
|
|
NODE_ENV: production
|
|
|
|
ports:
|
|
# BIND_ADDR restreint l'écoute à une interface : mets l'IP LAN ou VPN de
|
|
# la machine plutôt que 0.0.0.0 si elle a aussi une patte publique.
|
|
- "${BIND_ADDR:-0.0.0.0}:${HOST_PORT:-8080}:8080"
|
|
|
|
volumes:
|
|
- ./data:/app/data
|
|
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/healthz"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 10s
|
|
retries: 3
|
|
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|