# Docker setup operativo Day0 Questo documento descrive lo stack Docker realmente usato nel repository operativo `netgescon-day0`. ## Obiettivo Avviare solo l'applicativo NetGescon in container, lasciando fuori: - MySQL esistente - archivi gia presenti - storage gia popolato, quando serve lavorare sui dati correnti ## Stack effettivo Il file autorevole e `docker-compose.yml` nella root del repository. Servizi inclusi: - `app` - `queue` - `scheduler` - `nginx` - `redis` - `mailhog` Il wrapper operativo e: ```bash bash docker/run-app-stack.sh up -d --build ``` ## 1) Configurazione locale Creare il file `.env.docker.local` partendo da `.env.docker.local.example`. Variabili minime da verificare: - `APP_URL` - `APP_PORT` - `NETGESCON_DB_HOST` - `NETGESCON_DB_PORT` - `NETGESCON_DB_DATABASE` - `NETGESCON_DB_USERNAME` - `NETGESCON_DB_PASSWORD` - `NETGESCON_STORAGE_PATH` - `NETGESCON_CACHE_PATH` - `RUN_MIGRATIONS` Valori consigliati per lavorare sui dati esistenti: ```dotenv RUN_MIGRATIONS=false NETGESCON_STORAGE_PATH=./storage NETGESCON_CACHE_PATH=./bootstrap/cache ``` Se gli archivi correnti sono gia presenti nella cartella `storage` del workspace, non serve alcun path esterno aggiuntivo: il container usera direttamente quello storage. Se invece gli archivi stanno fuori dal repository, puntare `NETGESCON_STORAGE_PATH` al path host reale. ## 2) Validazione prima dell'avvio Controllare che il compose risolva correttamente le variabili: ```bash bash docker/run-app-stack.sh config ``` Questo e il check piu economico per verificare: - file env presente - sostituzione variabili corretta - bind mount storage/cache coerenti - nessuna migrazione automatica indesiderata ## 3) Avvio stack Avvio completo: ```bash bash docker/run-app-stack.sh up -d --build ``` Verifica container: ```bash bash docker/run-app-stack.sh ps ``` Log applicazione: ```bash bash docker/run-app-stack.sh logs app --tail=200 ``` Log nginx: ```bash bash docker/run-app-stack.sh logs nginx --tail=200 ``` ## 4) Accesso e collaudo URL locale/staging base: ```text http://localhost:${APP_PORT} ``` Collaudi minimi dopo l'avvio: 1. login Filament 2. pagina `Servizi / Utenze` 3. verifica righe FE acqua con riferimento unico `CBILL` 4. pagina `Acquisizione Documenti` 5. lettore Datalogic con visualizzazione del testo etichetta archivio ## 5) Politica dati attuale - DB esterno esistente: consentito - archivi esistenti: consentiti - migrazioni automatiche in avvio: disattivate di default - `mailhog`: usato per test locale, non per invio ufficiale ## 6) Differenze rispetto ai documenti storici I documenti storici che citano `docker/docker-compose.prod.yml`, `.env.docker.example` o mount legacy separati non sono piu il riferimento operativo principale per Day0. Per Day0 fanno fede: - `docker-compose.yml` - `docker/run-app-stack.sh` - `.env.docker.local.example` - `.env.docker.local` locale non versionato