# Day0 Gitea + Updates Checklist Data: 17-03-2026 ## Stato chiarito - La sola versione realmente prevista oggi e attiva e `free`. - La versione `licensed` e solo prevista sulla carta. - Quindi un canale `licensed` vuoto, non pubblicato o non configurato non e un errore bloccante in questa fase. - Il focus corretto e allineare `netgescon-day0`, Gitea e `updates.netgescon.it` sul solo canale `free`. ## Cosa risulta gia verificato - Repository Git attivo: `ssh://git@192.168.0.53:2222/michele/netgescon-day0.git` - Branch visibile da Day0: solo `main` - Route Day0 locale presenti: - `GET api/v1/distribution/updates/manifest` - `GET api/v1/distribution/updates/package` - Artefatti locali Day0 presenti: - `storage/app/distribution/free/manifest.json` - `storage/app/distribution/free/netgescon-0.8.1.zip` - `updates.netgescon.it` ora risolve verso `192.168.0.53` - `https://updates.netgescon.it/api/v1/distribution/health` risponde correttamente - `https://updates.netgescon.it/api/v1/distribution/updates/manifest?channel=free` attualmente restituisce `404` ## Cosa chiedere all'altro agent Chiedere di verificare sulla macchina `192.168.0.53` solo questi punti. ### 1. Repository e working copy corretti Verificare: - qual e la cartella reale dell'app che serve `updates.netgescon.it` - se quella cartella deriva da `netgescon-day0` - se il commit checked out sulla macchina `.53` coincide con `origin/main` di `netgescon-day0` Comandi utili: ```bash pwd git remote -v git branch --show-current git rev-parse HEAD git log --oneline -n 5 ``` ### 2. Route Laravel sul server update Verificare se sull'app che gira sulla `.53` esistono davvero le route distribution update: ```bash php artisan route:list | rg "distribution|updates" ``` Ci aspettiamo almeno: - `api/v1/distribution/health` - `api/v1/distribution/updates/manifest` - `api/v1/distribution/updates/package` ### 3. Cache Laravel e route cache Se le route nel codice esistono ma il server risponde `404`, chiedere di verificare e pulire cache: ```bash php artisan optimize:clear php artisan route:clear php artisan config:clear php artisan cache:clear php artisan route:list | rg "distribution|updates" ``` ### 4. Document root e virtual host di updates.netgescon.it Verificare che nginx/apache per `updates.netgescon.it` punti al `public/` dell'app Day0 corretta, non a un'altra installazione Laravel. Chiedere: - file di configurazione del virtual host usato da `updates.netgescon.it` - document root impostata - eventuale symlink verso cartella sbagliata Controlli utili: ```bash nginx -T | rg -n "updates.netgescon.it|root |server_name" ``` ### 5. Artefatti distribution free sul server `.53` Verificare che sulla macchina `.53` esistano davvero: ```bash ls -lah storage/app/distribution/free/ cat storage/app/distribution/free/manifest.json sha256sum storage/app/distribution/free/*.zip ``` Se mancano, il server update non puo servire il canale `free`. ### 6. Configurazione distribution Verificare questi valori reali dentro l'app della `.53`: ```bash php artisan tinker --execute='echo "APP_URL=".config("app.url").PHP_EOL; echo "DIST_ROOT=".config("distribution.storage_root").PHP_EOL; echo "LICENSED_PAIRS=".(config("distribution.licensed_pairs") ?: "").PHP_EOL;' ``` Ci serve sapere: - `app.url` - `distribution.storage_root` - se `distribution.storage_root` punta davvero alla cartella giusta ### 7. Test HTTP locale dal server `.53` Chiedere di testare dalla macchina stessa: ```bash curl -i http://127.0.0.1/api/v1/distribution/health curl -i "http://127.0.0.1/api/v1/distribution/updates/manifest?channel=free" ``` Se da localhost funziona ma dal dominio no, il problema e nginx/vhost. Se da localhost non funziona, il problema e app/codice/cache/storage. ### 8. Allineamento staging con sviluppo Day0 Per capire se staging e allineato alla nostra versione di sviluppo, chiedere: - commit SHA della macchina `.53` - commit SHA locale di `netgescon-day0` - se il pacchetto `free` e stato rigenerato dopo gli ultimi cambi Day0 ## Risposta minima che ci serve dall'altro agent Chiedere di rispondere in questo formato: 1. Path reale dell'app che serve `updates.netgescon.it` 2. Commit SHA attuale sulla `.53` 3. Output di `php artisan route:list | rg "distribution|updates"` 4. Presenza o assenza di `storage/app/distribution/free/manifest.json` 5. Output di `cat storage/app/distribution/free/manifest.json` 6. Conferma del virtual host e document root di `updates.netgescon.it` 7. Esito di `curl` locale a `updates/manifest?channel=free` 8. Eventuale motivo del `404` ## Nota importante Per ora non serve trattare `licensed` come errore. Il requisito corretto di questa fase e: - `free` deve funzionare - Gitea Day0 deve essere la sola sorgente Git attiva - `updates.netgescon.it` deve servire il manifest e il package del canale `free`