View Categories

Fichiers de configuration

3 min read

Configuration : fichiers vs paramètres

  • La page Paramètres enregistre les modifications dans le fichier .env.local (jamais mis à jour).
  • .env contient les valeurs par défaut qui sont mises à jour.
  • Les variables d’environnement réelles du système d’exploitation (exportées dans le service/l’hôte) prévalent sur les deux.
  • Ne validez jamais les secrets. Conservez les secrets uniquement dans les variables d’environnement réelles ou dans le fichier .env.local.
  • En production, les modifications apportées à l’environnement peuvent nécessiter l’exécution de la commande php bin/console cache:clear (ou le rechargement de PHP-FPM) pour prendre effet.

Ordre de priorité (du plus élevé au plus bas)

  1. Variables d’environnement réelles (ex : export MAILER_DSN=…)
  2. .env.local (le formulaire « Paramètres » y enregistre les données)
  3. .env.$APP_ENV
  4. .env

Ce que vous pouvez modifier dans les paramètres (enregistre dans le fichier .env.local)

Vous trouverez ci-dessous les principales variables affichées dans l’interface utilisateur. Lorsque vous enregistrez, EAC écrit ou met à jour la clé correspondante dans le fichier .env.local. La colonne “.env (Valeur actuelle)” de l’interface utilisateur est en lecture seule.

Planification et système

  • SCHEDULE_ENABLED
  • SCHEDULE_RESCHEDULE_OLD_TASK_AFTER_X_MIN
  • EAC_CHECK_STATUS_WITH_GIT
  • EAC_CRON_USER
  • EXEC_TASK_AVG_COUNT
  • EAC_DISPLAY_ERROR_ON_HOME
  • PHP_PATH_COMMAND
  • APP_DEFAULT_URI
  • APP_TASK_LOG_TYPE (file or db)
  • APP_JAVA_HOME
  • Paths: APP_CONSOLE, APP_LDIR, APP_DEPLOY_DIR, APP_EXEC_EXTENSION, APP_SCANNED_PARTITIONS, APP_TMP_DIR, APP_UPLOAD_DIR

Mail

  • APP_MAILER_DEFAULT_SENDER
  • APP_MAILER_DEFAULT_RECIPIENTS
  • APP_ENABLE_TASK_MAILER
  • Transport: MAILER_PROTOCOL, MAILER_USER, MAILER_PASSWORD, MAILER_HOST, MAILER_PORT, MAILER_OPTIONS
    • Note: L’interface utilisateur masque les mots de passe ; la valeur enregistrée est transmise à .env.local.

Base de données (core app)

  • DB_DRIVER, DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD, DB_OPTIONS
    • EAC calcule la valeur de DATABASE_URL à partir des informations ci-dessus

ETL log tables & ETL logging DB

  • Flags & table names: APP_ENABLE_ETL_LOGS, ETL_STAT_TABLE_NAME, ETL_MET_TABLE_NAME, ETL_LOG_TABLE_NAME
  • Connexion (si différente de celle de la base de données principale) :
    DB_DRIVER_URL_ETL_LOG, DB_HOST_URL_ETL_LOG, DB_PORT_URL_ETL_LOG,
    DB_NAME_URL_ETL_LOG, DB_USER_URL_ETL_LOG, DB_PASSWORD_URL_ETL_LOG, DB_OPTIONS_URL_ETL_LOG
    • EAC calcule la valeur de DATABASE_URL_ETL_LOG à partir des informations ci-dessus.

Security

  • JWT_PASSPHRASE (passphrase uniquement ; les clés elles-mêmes sont des fichiers, voir ci-dessous)

Ce qui reste dans les fichiers (non modifiable dans les paramètres)

Il s’agit de valeurs structurelles ou définies au moment de la compilation. Définissez-les dans de véritables variables d’environnement ou dans les fichiers .env / .env.local:

  • APP_ENV (ex : prod, dev)
  • APP_SECRET (ne jamais commiter une clé secrète réelle dans .env; utilisez .env.local ou les variables d’environnement du système d’exploitation)
  • EAC_SERVER_CODE (identifiant d’instance)
  • APP_SITE_ENV (bannière de l’interface utilisateur / affichage de l’environnement)
  • COMPOSE_PROJECT_NAME (pertinent uniquement si vous utilisez Docker)
  • MESSENGER_TRANSPORT_DSN
  • JWT key paths:
    JWT_SECRET_KEY, JWT_PUBLIC_KEY (ils pointent vers des fichiers de clés sur le disque ; gérez ces fichiers au moment du déploiement)
  • Toute variable que votre organisation considère comme faisant partie de l’infrastructure (par exemple, proxy inverse, noms de pools PHP-FPM, etc.)

Exemples

.env (committed defaults — no secrets)

APP_ENV=prod
# Do NOT put the real secret here in git
APP_SECRET=change-me-in-env-local-or-OS

DB_DRIVER=postgresql
DB_HOST=db.example.internal
DB_PORT=5432
DB_NAME=eac_db
DB_USER=eac_usr
DB_OPTIONS=serverVersion=16&charset=utf8

APP_TASK_LOG_TYPE=file
SCHEDULE_ENABLED=true

.env.local (not committed — overrides & secrets)

# Real secrets and instance overrides
APP_SECRET=********REDACTED********
DB_PASSWORD=<strong-db-password>
MAILER_PASSWORD=<smtp-password>

APP_DEFAULT_URI=https://eac.example.com/
PHP_PATH_COMMAND=/usr/bin/php
EAC_CRON_USER=eac

Astuce (production) : après avoir modifié les variables d’environnement en production, exécutez la commande suivante :

php bin/console cache:clear --no-warmup
php bin/console cache:warmup
# or reload PHP-FPM if your stack caches env at master process start

Comment le formulaire « Paramètres » interagit avec les fichiers

  • Lors de l’enregistrement, l’application n’écrit dans le fichier .env.local que les clés qu’elle gère.
  • L’interface utilisateur affiche :
    • “.env.local (modifiable)” → la valeur qui sera enregistrée/remplacée.
    • “.env (valeur actuelle)” → valeur par défaut de référence (en lecture seule).
  • Si une clé est présente dans l’environnement réel du système d’exploitation, c’est cette valeur qui prévaut lors de l’exécution.

Consignes relatives aux données sensibles

Vérifiez qui peut accéder à la page « Paramètres » (réservée aux administrateurs).

Enregistrez les mots de passe, jetons et secrets dans le fichier .env.local ou dans de véritables variables d’environnement, jamais dans le fichier .env.

Conservez les clés JWT dans des fichiers hors de Git ; référencez-les via JWT_SECRET_KEY / JWT_PUBLIC_KEY.

Limitez les droits d’accès aux fichiers et répertoires suivants :

var/eac/log/, var/eac/tmp/, var/eac/uploads/, var/eac/deploy/