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
|
||||
Thumbs.db
|
||||
/reference/icone_profili_extra
|
||||
/reference/_*
|
||||
/reference/_*deploy.env
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
# Compila i due frontend dentro backoffice/public, da cui li serve Laravel:
|
||||
# configuratore 3D -> backoffice/public/configuratore (URL /configuratore/)
|
||||
# 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
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
[ -d "$ROOT/node_modules" ] || (cd "$ROOT" && pnpm install)
|
||||
[ -d "$ROOT/backoffice/cliente/node_modules" ] || (cd "$ROOT/backoffice/cliente" && pnpm install)
|
||||
|
||||
(cd "$ROOT" && pnpm build)
|
||||
(cd "$ROOT/backoffice/cliente" && pnpm build)
|
||||
(cd "$ROOT" && pnpm install --frozen-lockfile && pnpm build)
|
||||
(cd "$ROOT/backoffice/cliente" && pnpm install --frozen-lockfile && 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,22 +75,47 @@ 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
|
||||
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.
|
||||
|
||||
### 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.
|
||||
|
||||
`deploy.sh` (upload di `kreios.zip` su un host statico separato) appartiene al vecchio schema a server
|
||||
separati e non serve più.
|
||||
|
||||
## Riferimenti file
|
||||
|
||||
- [`backoffice/routes/web.php`](../backoffice/routes/web.php) — route `/configuratore/` e `/preventivo/`.
|
||||
@@ -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.
|
||||
|
||||
Generated
+4
-4
@@ -21,8 +21,8 @@ dependencies:
|
||||
specifier: ^3.7.1
|
||||
version: 3.7.1
|
||||
three:
|
||||
specifier: ^0.175.0
|
||||
version: 0.175.0
|
||||
specifier: ^0.185.1
|
||||
version: 0.185.1
|
||||
vite-plugin-static-copy:
|
||||
specifier: ^2.3.0
|
||||
version: 2.3.0(vite@6.2.5)
|
||||
@@ -838,8 +838,8 @@ packages:
|
||||
source-map-support: 0.5.21
|
||||
dev: true
|
||||
|
||||
/three@0.175.0:
|
||||
resolution: {integrity: sha512-nNE3pnTHxXN/Phw768u0Grr7W4+rumGg/H6PgeseNJojkJtmeHJfZWi41Gp2mpXl1pg1pf1zjwR4McM1jTqkpg==}
|
||||
/three@0.185.1:
|
||||
resolution: {integrity: sha512-5aojFCXKwnjBRZvUnt3WFfEcvUJgkN5LlijRFN95hMy8WVkG4I0QNcJE+OuWvuJ0bOdStrbfXn0pkd6/QyiAlg==}
|
||||
dev: false
|
||||
|
||||
/to-regex-range@5.0.1:
|
||||
|
||||
Reference in New Issue
Block a user