Guida

Produzione e deployment

Prepara i valori d’ambiente, lascia che Lemonade usi la config cache di produzione e distribuisci solo gli artefatti realmente necessari al runtime.

La modalità produzione parte dall’ambiente

Il comportamento in produzione dipende soprattutto da APP_ENV, APP_DEBUG e valori applicativi come APP_BASE_URL. development e testing caricano la configurazione direttamente dalle sorgenti. production, prod e altri ambienti non di sviluppo si comportano come runtime di produzione e possono usare la config cache compilata.

example.php
APP_ENV=production
APP_DEBUG=0
APP_BASE_URL=https://example.com

Come funziona la config cache compilata

I file YAML e i valori d’ambiente risolti restano la fonte di verità. In modalità produzione ConfigLoader prova prima ApplicationConfigCache::loadIfFresh(). Se la cache manca, è obsoleta o una sorgente monitorata è cambiata, il framework ricarica la configurazione e scrive automaticamente una cache nuova. I comandi separati config:cache e config:clear al momento non sono necessari.

example.php
production HTTP request or CLI command
-> ConfigLoader::loadApplication(...)
-> ApplicationConfigCache::loadIfFresh(...)
-> on cache miss: load source config and write a fresh compiled cache

Directory runtime scrivibili

Un’applicazione distribuita deve poter scrivere in storage/ per la config cache compilata, i log, le session e gli upload quando queste feature sono attive. Mantieni i file generati sotto storage/, non committarli e non trattarli come fonte di verità.

example.php
storage/cache/framework/config/
storage/logs/
storage/sessions/
storage/uploads/

Checklist pratica per il deployment

  • Prima del deployment: prepara valori d’ambiente e secrets, distribuisci la configurazione YAML e genera un autoloader Composer ottimizzato.
  • Durante il deployment: pubblica il codice e verifica le directory scrivibili sotto storage/.
  • Dopo il deployment: lascia che la prima request HTTP di produzione o il primo comando CLI crei la config cache, verifica il logging ed esegui worker vendor/bin/lemonade o comandi schedulati solo se l’applicazione li usa davvero.
  • Consulta Infrastruttura per lo storage runtime ed Errori e debug per la diagnostica.
example.php
composer install --no-dev --optimize-autoloader
vendor/bin/lemonade about

# Optional when the app uses queue workers
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database