Files
Michael f4e3608d72 Publier PostgreSQL sur un port hôte non commun
Plusieurs instances PostgreSQL coexistent sur le serveur : publier la base
sur 55432 par défaut (configurable via POSTGRES_PORT), sans changer le port
interne 5432 utilisé par l'application.
2026-08-09 13:50:50 +02:00

55 lines
2.6 KiB
Bash

# Copier vers .env et renseigner. Ne jamais committer .env.
# --- Base de données --------------------------------------------------------
# Port hôte publié pour PostgreSQL. Non commun à dessein : plusieurs instances
# PostgreSQL coexistent sur le même serveur, et 5432 (voire 5433) est souvent
# déjà pris. Le conteneur app écoute toujours sur 5432 en interne.
POSTGRES_PORT=55432
POSTGRES_USER=planflow
# Une valeur par défaut existe dans docker-compose.yml : la base n'étant jamais
# publiée ni attachée au réseau du reverse-proxy, ce mot de passe protège d'un
# conteneur voisin, pas d'Internet. Le changer reste recommandé.
POSTGRES_PASSWORD=change-me
POSTGRES_DB=planflow
# Compte de connexion de l'application. Distinct du superutilisateur
# d'amorçage : un superutilisateur contourne la row-level security, y compris
# déclarée en FORCE, et l'isolation ne reposerait plus que sur la couche
# applicative. Créé au premier démarrage par docker/init-app-role.sh.
APP_DB_USER=planflow_app
APP_DB_PASSWORD=change-me-aussi
# Connexion administrative, utilisée uniquement par le harnais de tests de bout
# en bout. Inutile en production.
# ADMIN_DATABASE_URL=postgresql://planflow@localhost:5432/planflow
# Utilisée par l'application et par Prisma.
# En docker-compose l'hôte est `db` ; en développement local, `localhost`.
DATABASE_URL=postgresql://planflow:change-me@localhost:5432/planflow
# --- Chiffrement ------------------------------------------------------------
# Chiffre au repos les colonnes sensibles exigées par PLAN.md §3.6 :
# NIR, IBAN, BIC. 32 octets en base64.
#
# openssl rand -base64 32
#
# En docker-compose, la laisser vide suffit : elle est produite au premier
# démarrage et conservée dans le volume `secrets`.
#
# Cette clé vit hors de la base : une sauvegarde volée ne doit pas suffire à
# lire ces colonnes. La perdre rend les données chiffrées irrécupérables —
# la sauvegarder séparément et documenter sa rotation.
ENCRYPTION_KEY=
# --- Application ------------------------------------------------------------
APP_URL=http://localhost:9317
# Port publié sur l'hôte. Peu courant à dessein : le service passe normalement
# par le reverse-proxy, qui joint le conteneur sur son port 3000.
APP_PORT=9317
# --- Pièces du dossier salarié ----------------------------------------------
# Répertoire de stockage, chiffré au repos avec ENCRYPTION_KEY.
# En docker-compose il vaut /data/documents, sur un volume nommé — ne pas le
# changer sans déplacer le volume, les pièces déjà déposées y resteraient.
DOCUMENT_STORE=./storage/documents