feat: aggiorna la gestione delle dipendenze e rimuove lo script di deploy obsoleto

This commit is contained in:
2026-10-20 18:49:27 +02:00
parent 0dfda3a338
commit d81f9348a2
5 changed files with 47 additions and 60 deletions
+39 -14
View File
@@ -75,21 +75,46 @@ Dettagli in [AVVIO_LOCALE.md](AVVIO_LOCALE.md).
Nessuna variabile necessaria. `VITE_PREVENTIVI_API_BASE` (root) e `VITE_API_BASE` (`backoffice/cliente`)
restano disponibili solo per puntare a un'API su un dominio diverso.
## Checklist di deploy in produzione
## Deploy in produzione (Plesk + Git)
1. `./build.sh` dalla root: compila configuratore e app cliente in `backoffice/public/configuratore` e
`backoffice/public/preventivo` (cartelle ignorate da git: vanno generate in fase di deploy o caricate
insieme al backend).
2. Backend: `.env` di produzione (`APP_URL`, `DB_*`, `MAIL_*`, `ADMIN_NOTIFY_EMAIL`), poi
`php artisan migrate --force`, `php artisan storage:link`, `php artisan config:cache`.
3. Nel sito `kreiosinfissi.it` l'iframe punta a `https://<backend>/configuratore/?sistema=…&type=…`.
4. Restringere `CORS_ALLOWED_ORIGINS` (o lasciarlo vuoto) se nessun dominio esterno usa l'API.
5. Verifica end-to-end: configurare un prodotto → "Aggiungi al preventivo" → "Vai al preventivo" apre
`/preventivo/` sullo stesso dominio → completare il checkout → il preventivo compare in Filament e le
email (cliente + admin) sono inviate.
Il deploy avviene con l'estensione Git di Plesk, che scarica l'intero repository. Le build dei frontend non
sono in git: le genera `./build.sh` sul server dopo ogni pull.
`deploy.sh` (upload di `kreios.zip` su un host statico separato) appartiene al vecchio schema a server
separati e non serve più.
### Configurazione una tantum in Plesk
1. **Git**: repository collegato al dominio, cartella di deploy es. `kreios/`.
2. **Hosting**: Document root = `kreios/backoffice/public`, PHP 8.3+.
3. **Node.js** (estensione Node.js di Plesk) con pnpm disponibile (`corepack enable`).
4. **`.env`** creato a mano in `kreios/backoffice/.env` (`APP_ENV=production`, `APP_DEBUG=false`, `APP_URL`,
`DB_*`, `MAIL_*`, `ADMIN_NOTIFY_EMAIL`), poi una volta sola: `php artisan key:generate`,
`php artisan storage:link`, `php artisan db:seed --force` (admin, catalogo e immagini del configuratore).
5. **Azioni di deploy aggiuntive** (Git → impostazioni del repository). Esempio, da adattare ai percorsi
di PHP/Node del server:
```bash
export PATH=/opt/plesk/node/20/bin:$PATH
PHP=/opt/plesk/php/8.3/bin/php
(cd backoffice && $PHP /usr/lib/plesk-9.0/composer.phar install --no-dev --optimize-autoloader --no-interaction)
# svuota tutte le cache di Laravel (config, route, view, eventi, cache applicativa, compilati)
(cd backoffice && $PHP artisan optimize:clear)
# esegue solo le migrazioni non ancora applicate (--force: richiesto in produzione)
(cd backoffice && $PHP artisan migrate --force)
(cd backoffice && $PHP artisan optimize && $PHP artisan queue:restart)
./build.sh
```
`build.sh` installa le dipendenze con `pnpm install --frozen-lockfile`: se `package.json` cambia, va
committato anche il `pnpm-lock.yaml` aggiornato, altrimenti il deploy fallisce. Durante la build le cartelle
`public/configuratore` e `public/preventivo` vengono svuotate e riscritte: per qualche secondo le due
pagine non sono disponibili.
### Dopo ogni deploy
- Nel sito `kreiosinfissi.it` l'iframe punta a `https://<backend>/configuratore/?sistema=…&type=…`.
- Restringere `CORS_ALLOWED_ORIGINS` (o lasciarlo vuoto) se nessun dominio esterno usa l'API.
- Verifica end-to-end: configurare un prodotto → "Aggiungi al preventivo" → "Vai al preventivo" apre
`/preventivo/` sullo stesso dominio → completare il checkout → il preventivo compare in Filament e le
email (cliente + admin) sono inviate.
## Riferimenti file
@@ -98,4 +123,4 @@ separati e non serve più.
- [`src/js/api_base.js`](../src/js/api_base.js), [`backoffice/cliente/src/api.js`](../backoffice/cliente/src/api.js) — base URL dell'API.
- [`src/js/starter.js`](../src/js/starter.js) — integrazione configuratore↔backend, link all'app cliente.
- [`backoffice/config/preventivi.php`](../backoffice/config/preventivi.php) — `frontend_cliente_url`, `configuratore_url`.
- [`build.sh`](../build.sh), [`dev.sh`](../dev.sh) — build e ambiente di sviluppo.
- [`build.sh`](../build.sh), [`dev.sh`](../dev.sh) — build dei frontend (anche su Plesk) e ambiente di sviluppo.