Clavier

Raccourcis

Palette de commandes
K
Accueil
gh
À propos
ga
Projets
gp
Expertise
gx
Journal
gj
Contact
gc
Copier l’email
e
Appeler
c
Changer de thème
t
Afficher cette aide
?

↑↓ pour naviguer · Enter pour ouvrir · Esc pour fermer

Architecture

Runtime config : pourquoi j’ai sorti SMTP et Gemini du `.env`

TL;DR AppConfig + RuntimeConfigApplier. Champ secret vide au save = on garde l’ancienne valeur.

12 nov. 2025 · Albert Nicolas

  • laravel
  • architecture
  • config
  • ops
Runtime config : pourquoi j’ai sorti SMTP et Gemini du `.env`

2 min de lecture Lecture 0%

Quand je changeais la clé Gemini ou le SMTP, je redeployais. Absurde pour un portfolio single-tenant que je maintiens moi-même. J’ai basculé le pattern Carnet de bord / news CMS : options dans l’admin, secrets chiffrés au repos, merge au boot.

Frontière claire

Dans .env Dans l’admin (AppConfig)
APP_KEY, DB_* SMTP, from, notify contact
OWNER_EMAIL (lock login) Gemini / modèles IA
Rate limits, captcha, maintenance 503

La règle « empty keep existing »

if (blank($request->input('smtp_password'))) {
    unset($payload['smtp_password']); // ne pas écraser
}

Sans ça, un save honnête de l’admin wype le secret. Je l’ai déjà fait une fois. Une fois de trop.

RuntimeConfigApplier

Au boot, on pousse les valeurs DB dans config('mail'), etc. Les Feature tests seedent AppConfig — pas seulement .env.testing. Sinon les tests passent en local et la prod ment.

← Retour au journal

Me contacter Appeler