netgescon-day0/docs/checklists/DAY0-GITEA-UPDATES-CHECKLIST.md

158 lines
4.8 KiB
Markdown

# 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`