VigilanzaTurni/QUICKSTART-DEPLOYMENT.md
marco370 7c456271ac Update deployment process to use a new server and simplify commands
Update deployment documentation and scripts to deploy to vt.alfacom.it, remove Replit references, and simplify the deployment workflow to two commands: `./push-to-gitlab.sh` and `bash deploy/deploy.sh`, including automated database backups.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 42d8028a-fa71-4ec2-938c-e43eedf7df01
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
2025-10-16 10:56:13 +00:00

3.3 KiB
Raw Blame History

🚀 Quick Start - Deployment VigilanzaTurni

Guida rapida per deployment: Replit → GitLab → vt.alfacom.it

📝 Checklist Pre-Deployment

  • Server AlmaLinux 9 disponibile (min 2GB RAM)
  • Dominio vt.alfacom.it configurato
  • Account GitLab
  • SSH access al server

Setup Iniziale (15 minuti)

1 Setup Server (5 min)

# SSH nel server
ssh root@vt.alfacom.it

# Clone repository
cd /var/www
git clone https://git.alfacom.it/marco/VigilanzaTurni.git vigilanza-turni
cd vigilanza-turni

# Esegui setup automatico
sudo bash deploy/setup-server.sh

Lo script installa automaticamente:

  • Node.js 20
  • PostgreSQL 15 (con password: 553da84c94093919d46055d6ec37dfa2a03d0f46)
  • PM2
  • Nginx
  • Certbot (SSL)

2 Configura Nginx (2 min)

# Copia configurazione Nginx
sudo cp deploy/nginx.conf /etc/nginx/conf.d/vigilanza-turni.conf

# Test e reload
sudo nginx -t
sudo systemctl reload nginx

# SSL Certificate
sudo certbot --nginx -d vt.alfacom.it

3 Configura .env (2 min)

cd /var/www/vigilanza-turni

# Crea .env produzione
cp .env.production.example .env
nano .env

Inserisci in .env:

DATABASE_URL=postgresql://vigilanza_user:553da84c94093919d46055d6ec37dfa2a03d0f46@localhost:5432/vigilanza_turni
SESSION_SECRET=$(openssl rand -base64 32)
NODE_ENV=production
PORT=5000
APP_URL=https://vt.alfacom.it
BACKUP_ENABLED=true
BACKUP_DIR=/var/backups/vigilanza-turni

4 Primo Deploy (2 min)

cd /var/www/vigilanza-turni
bash deploy/deploy.sh

🔄 Workflow Quotidiano

Deploy in 2 Comandi

Da Replit o locale:

# 1. Push a GitLab
./push-to-gitlab.sh

# 2. Sul server: Deploy
ssh root@vt.alfacom.it "cd /var/www/vigilanza-turni && bash deploy/deploy.sh"

Il deploy automaticamente:

  • Esegue backup database
  • Pull ultime modifiche da GitLab
  • Build frontend Vite
  • Esegue migrations database
  • Restart applicazione PM2
  • Health check

📊 Comandi Utili

# Status applicazione
pm2 status

# Logs real-time
pm2 logs vigilanza-turni

# Restart
pm2 restart vigilanza-turni

# Verifica backup
ls -lht /var/backups/vigilanza-turni/

# Ripristina backup
gunzip -c /var/backups/vigilanza-turni/backup_20250116_143022.sql.gz | \
  PGPASSWORD=553da84c94093919d46055d6ec37dfa2a03d0f46 \
  psql -h localhost -U vigilanza_user -d vigilanza_turni

🆘 Troubleshooting

App non risponde:

pm2 restart vigilanza-turni
pm2 logs vigilanza-turni --lines 50
sudo systemctl reload nginx

Errore database:

# Verifica connessione
PGPASSWORD=553da84c94093919d46055d6ec37dfa2a03d0f46 \
  psql -h localhost -U vigilanza_user -d vigilanza_turni -c "SELECT version();"

Build fallito:

cd /var/www/vigilanza-turni
rm -rf node_modules dist
npm ci
npm run build
pm2 restart vigilanza-turni

🌐 Accesso

Applicazione: https://vt.alfacom.it

Backup automatici:

  • Directory: /var/backups/vigilanza-turni/
  • Retention: 30 giorni
  • Formato: backup_YYYYMMDD_HHMMSS.sql.gz

📚 File Importanti

  • deploy/deploy.sh - Script deployment automatico
  • deploy/setup-server.sh - Setup iniziale server
  • deploy/nginx.conf - Configurazione reverse proxy
  • .env - Variabili ambiente produzione
  • push-to-gitlab.sh - Helper push GitLab