From 0c6195a4e9bdee59794f8bea39d3c03b8cc14e30 Mon Sep 17 00:00:00 2001 From: Azmog <80716388+AzmogEx@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:39:47 +0200 Subject: [PATCH] =?UTF-8?q?fix(deploy):=20APP=5FKEY/JWT=5FSECRET=20fiables?= =?UTF-8?q?=20(=C3=A9crit=20dans=20.env=20+=20export=20si=20g=C3=A9n=C3=A9?= =?UTF-8?q?r=C3=A9s)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige MissingAppKeyException : une variable d'env vide masquait la valeur du .env. On force désormais APP_KEY/JWT_SECRET dans .env si fournies, sinon on les génère ET on les exporte dans l'environnement du process. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/docker/entrypoint.sh | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/backend/docker/entrypoint.sh b/backend/docker/entrypoint.sh index f0bf286..e08622a 100644 --- a/backend/docker/entrypoint.sh +++ b/backend/docker/entrypoint.sh @@ -7,15 +7,29 @@ cd /app # définies par Coolify, ont la priorité sur ce fichier). [ -f .env ] || cp .env.example .env -# Clés générées au démarrage si absentes (À DÉFINIR EN PROD via Coolify : -# APP_KEY et JWT_SECRET, pour qu'elles restent stables entre déploiements). -if [ -z "$APP_KEY" ]; then - echo "[entrypoint] APP_KEY absent — génération (pensez à la fixer dans Coolify)." +# --- APP_KEY --- +# Si fournie (Coolify) : on la force dans .env. Sinon : on en génère une et on +# l'EXPORTE, sinon une variable d'env vide masquerait la valeur du .env +# (phpdotenv n'écrase pas une variable déjà présente) -> MissingAppKeyException. +if [ -n "$APP_KEY" ]; then + echo "[entrypoint] APP_KEY fournie." + sed -i "s|^APP_KEY=.*|APP_KEY=${APP_KEY}|" .env +else + echo "[entrypoint] APP_KEY absente — génération (pensez à la fixer dans Coolify)." php artisan key:generate --force + APP_KEY="$(grep '^APP_KEY=' .env | cut -d '=' -f 2-)" + export APP_KEY fi -if [ -z "$JWT_SECRET" ]; then + +# --- JWT_SECRET --- +if [ -n "$JWT_SECRET" ]; then + echo "[entrypoint] JWT_SECRET fourni." + sed -i "s|^JWT_SECRET=.*|JWT_SECRET=${JWT_SECRET}|" .env +else echo "[entrypoint] JWT_SECRET absent — génération (pensez à le fixer dans Coolify)." php artisan jwt:secret --force + JWT_SECRET="$(grep '^JWT_SECRET=' .env | cut -d '=' -f 2-)" + export JWT_SECRET fi # Base de données : migrations + seed (les seeders sont idempotents).