Files
glastree/DEPLOY.md
T
2026-06-15 11:14:35 +02:00

3.6 KiB

🚀 Deploy & Aggiornamento — Glastree

Generare il Pacchetto (Server di Sviluppo)

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)

# 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)

# 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

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 → 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"