145 lines
3.6 KiB
Markdown
145 lines
3.6 KiB
Markdown
|
|
# 🚀 Deploy & Aggiornamento — Glastree
|
||
|
|
|
||
|
|
## Generare il Pacchetto (Server di Sviluppo)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /var/www/html/glastree
|
||
|
|
|
||
|
|
# Installa dipendenze PHP production (esclude dev)
|
||
|
|
composer install --no-dev --optimize-autoloader
|
||
|
|
|
||
|
|
# Build asset Vite (se node_modules/ presente)
|
||
|
|
npm install && npm run build
|
||
|
|
|
||
|
|
# Genera archivio
|
||
|
|
bash build-dist.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
L'archivio `glastree-YYYYMMDD_HHMM.tar.gz` viene creato nella directory corrente.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🆕 Installazione Fresca (Nuovo Server)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. Estrai archivio
|
||
|
|
tar xzf glastree-YYYYMMDD_HHMM.tar.gz
|
||
|
|
cd glastree
|
||
|
|
|
||
|
|
# 2. Crea directory necessarie
|
||
|
|
mkdir -p storage/framework/cache/data \
|
||
|
|
storage/framework/sessions \
|
||
|
|
storage/framework/views \
|
||
|
|
storage/logs \
|
||
|
|
bootstrap/cache \
|
||
|
|
storage/app/public \
|
||
|
|
storage/app/public/logos \
|
||
|
|
storage/app/public/documenti/eventi \
|
||
|
|
storage/app/backups \
|
||
|
|
storage/app/documenti \
|
||
|
|
storage/app/private/avatars/gruppi
|
||
|
|
|
||
|
|
# 3. Permessi
|
||
|
|
chmod -R 775 storage bootstrap/cache
|
||
|
|
chown -R www-data:www-data storage bootstrap/cache
|
||
|
|
|
||
|
|
# 4. Crea .gitignore in storage/app/public (serve a Laravel)
|
||
|
|
echo "*" > storage/app/public/.gitignore
|
||
|
|
echo "!.gitignore" >> storage/app/public/.gitignore
|
||
|
|
|
||
|
|
# 5. Configura ambiente
|
||
|
|
cp .env.example .env
|
||
|
|
# Modifica manualmente: DB, APP_URL, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
|
||
|
|
php artisan key:generate
|
||
|
|
|
||
|
|
# 6. Pulisci cache e ricrea symlink
|
||
|
|
rm -f public/storage
|
||
|
|
ln -sf ../storage/app/public public/storage
|
||
|
|
php artisan config:clear
|
||
|
|
php artisan route:clear
|
||
|
|
php artisan view:clear
|
||
|
|
|
||
|
|
# 7. Avvia installazione DB
|
||
|
|
php install.php
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔄 Aggiornamento (Server Esistente)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. BACKUP
|
||
|
|
cp .env .env.backup.$(date +%Y%m%d_%H%M%S)
|
||
|
|
mysqldump -u USER -p DBNAME > backup_$(date +%Y%m%d_%H%M%S).sql
|
||
|
|
|
||
|
|
# 2. Estrai archivio
|
||
|
|
tar xzf glastree-YYYYMMDD_HHMM.tar.gz
|
||
|
|
|
||
|
|
# 3. Ripristina .env
|
||
|
|
cp .env.backup.* .env
|
||
|
|
|
||
|
|
# 4. Aggiungi nuove variabili d'ambiente
|
||
|
|
echo "GOOGLE_CLIENT_ID=" >> .env
|
||
|
|
echo "GOOGLE_CLIENT_SECRET=" >> .env
|
||
|
|
|
||
|
|
# 5. Permessi
|
||
|
|
chmod -R 775 storage bootstrap/cache
|
||
|
|
chown -R www-data:www-data storage bootstrap/cache
|
||
|
|
|
||
|
|
# 6. Symlink storage
|
||
|
|
rm -f public/storage
|
||
|
|
ln -sf ../storage/app/public public/storage
|
||
|
|
|
||
|
|
# 7. Migration
|
||
|
|
php artisan migrate --force
|
||
|
|
|
||
|
|
# 8. Pulisci cache
|
||
|
|
php artisan config:clear
|
||
|
|
php artisan route:clear
|
||
|
|
php artisan view:clear
|
||
|
|
|
||
|
|
# 9. Asset Vite
|
||
|
|
npm install && npm run build
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📦 Contenuto dell'Archivio
|
||
|
|
|
||
|
|
| Include | Esclude |
|
||
|
|
|---------|---------|
|
||
|
|
| Sorgenti PHP (`app/`, `config/`, `routes/`, `resources/`) | `.git/`, `node_modules/`, `tests/` |
|
||
|
|
| Vendor production | `.env`, `.env.example` |
|
||
|
|
| Asset Vite compilati (`public/build/`) | `storage/app/public/`, `storage/app/private/` |
|
||
|
|
| Migration e seeder | `storage/framework/cache/*`, `sessions/*`, `views/*` |
|
||
|
|
| | `storage/logs/*`, `storage/debugbar/*` |
|
||
|
|
| | `storage/app/backups/`, `storage/app/documenti/` |
|
||
|
|
| | `MEMORY.md`, `AGENTS.md`, `build-dist.sh`, Docker files |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚙️ Variabili d'Ambiente Richieste
|
||
|
|
|
||
|
|
```env
|
||
|
|
APP_URL=https://tuodominio.it
|
||
|
|
APP_SUBFOLDER=/app
|
||
|
|
DB_CONNECTION=mysql
|
||
|
|
DB_HOST=127.0.0.1
|
||
|
|
DB_PORT=3306
|
||
|
|
DB_DATABASE=glastree
|
||
|
|
DB_USERNAME=glastree
|
||
|
|
DB_PASSWORD=...
|
||
|
|
|
||
|
|
GOOGLE_CLIENT_ID=....
|
||
|
|
GOOGLE_CLIENT_SECRET=....
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🌐 Google OAuth 2.0 — Post-Deploy
|
||
|
|
|
||
|
|
1. [Google Cloud Console](https://console.cloud.google.com/) → Abilita Gmail API, Drive API, Calendar API
|
||
|
|
2. Credenziali → OAuth Client ID → Web Application
|
||
|
|
3. Redirect URI: `https://tuodominio.it/app/auth/google/callback`
|
||
|
|
4. Inserisci Client ID/Secret in `.env`
|
||
|
|
5. **Impostazioni → Google Services** → Connetti Gmail, Drive, Calendar
|
||
|
|
6. Per Gmail: **Impostazioni → Email → IMAP** → seleziona "OAuth 2.0"
|