feat: aggiorna la gestione delle dipendenze e rimuove lo script di deploy obsoleto
This commit is contained in:
+1
-1
@@ -8,4 +8,4 @@ kreios.zip
|
|||||||
.env.production
|
.env.production
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
/reference/icone_profili_extra
|
/reference/icone_profili_extra
|
||||||
/reference/_*
|
/reference/_*deploy.env
|
||||||
|
|||||||
@@ -2,12 +2,10 @@
|
|||||||
# Compila i due frontend dentro backoffice/public, da cui li serve Laravel:
|
# Compila i due frontend dentro backoffice/public, da cui li serve Laravel:
|
||||||
# configuratore 3D -> backoffice/public/configuratore (URL /configuratore/)
|
# configuratore 3D -> backoffice/public/configuratore (URL /configuratore/)
|
||||||
# app cliente -> backoffice/public/preventivo (URL /preventivo/)
|
# app cliente -> backoffice/public/preventivo (URL /preventivo/)
|
||||||
|
# Usato in locale e dalle azioni di deploy di Plesk Git (vedi docs/PREVENTIVI_BACKOFFICE.md).
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
[ -d "$ROOT/node_modules" ] || (cd "$ROOT" && pnpm install)
|
(cd "$ROOT" && pnpm install --frozen-lockfile && pnpm build)
|
||||||
[ -d "$ROOT/backoffice/cliente/node_modules" ] || (cd "$ROOT/backoffice/cliente" && pnpm install)
|
(cd "$ROOT/backoffice/cliente" && pnpm install --frozen-lockfile && pnpm build)
|
||||||
|
|
||||||
(cd "$ROOT" && pnpm build)
|
|
||||||
(cd "$ROOT/backoffice/cliente" && pnpm build)
|
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Deploy kreios.zip to the remote server and unpack it, overwriting the
|
|
||||||
# existing "kreios" folder.
|
|
||||||
#
|
|
||||||
# Usage: ./deploy.sh
|
|
||||||
|
|
||||||
REMOTE_USER="developer"
|
|
||||||
REMOTE_HOST="cloud.aurealab.net"
|
|
||||||
REMOTE_DIR="/var/www/vhosts/cloud.aurealab.net/httpdocs"
|
|
||||||
LOCAL_ZIP="kreios.zip"
|
|
||||||
|
|
||||||
if [ ! -f "$LOCAL_ZIP" ]; then
|
|
||||||
echo "Errore: $LOCAL_ZIP non trovato. Esegui prima ./build.sh" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Upload di $LOCAL_ZIP su ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}"
|
|
||||||
if command -v rsync >/dev/null 2>&1; then
|
|
||||||
rsync -a --progress "$LOCAL_ZIP" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/"
|
|
||||||
else
|
|
||||||
scp "$LOCAL_ZIP" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Scompattazione remota (sovrascrittura cartella kreios esistente)"
|
|
||||||
ssh "${REMOTE_USER}@${REMOTE_HOST}" bash -s <<EOF
|
|
||||||
set -euo pipefail
|
|
||||||
cd "${REMOTE_DIR}"
|
|
||||||
rm -rf kreios
|
|
||||||
unzip -oq kreios.zip
|
|
||||||
rm -f kreios.zip
|
|
||||||
echo "Deploy completato in ${REMOTE_DIR}/kreios"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "==> Fatto."
|
|
||||||
@@ -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`)
|
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.
|
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
|
Il deploy avviene con l'estensione Git di Plesk, che scarica l'intero repository. Le build dei frontend non
|
||||||
`backoffice/public/preventivo` (cartelle ignorate da git: vanno generate in fase di deploy o caricate
|
sono in git: le genera `./build.sh` sul server dopo ogni pull.
|
||||||
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.
|
|
||||||
|
|
||||||
`deploy.sh` (upload di `kreios.zip` su un host statico separato) appartiene al vecchio schema a server
|
### Configurazione una tantum in Plesk
|
||||||
separati e non serve più.
|
|
||||||
|
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
|
## 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/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.
|
- [`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`.
|
- [`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.
|
||||||
|
|||||||
Generated
+4
-4
@@ -21,8 +21,8 @@ dependencies:
|
|||||||
specifier: ^3.7.1
|
specifier: ^3.7.1
|
||||||
version: 3.7.1
|
version: 3.7.1
|
||||||
three:
|
three:
|
||||||
specifier: ^0.175.0
|
specifier: ^0.185.1
|
||||||
version: 0.175.0
|
version: 0.185.1
|
||||||
vite-plugin-static-copy:
|
vite-plugin-static-copy:
|
||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.3.0(vite@6.2.5)
|
version: 2.3.0(vite@6.2.5)
|
||||||
@@ -838,8 +838,8 @@ packages:
|
|||||||
source-map-support: 0.5.21
|
source-map-support: 0.5.21
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/three@0.175.0:
|
/three@0.185.1:
|
||||||
resolution: {integrity: sha512-nNE3pnTHxXN/Phw768u0Grr7W4+rumGg/H6PgeseNJojkJtmeHJfZWi41Gp2mpXl1pg1pf1zjwR4McM1jTqkpg==}
|
resolution: {integrity: sha512-5aojFCXKwnjBRZvUnt3WFfEcvUJgkN5LlijRFN95hMy8WVkG4I0QNcJE+OuWvuJ0bOdStrbfXn0pkd6/QyiAlg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/to-regex-range@5.0.1:
|
/to-regex-range@5.0.1:
|
||||||
|
|||||||
Reference in New Issue
Block a user