feat: aggiorna la gestione delle dipendenze e rimuove lo script di deploy obsoleto
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user