# πŸš€ Guida Deployment Finale - vt.alfacom.it ## βœ… Modifiche Applicate ### 1. **CompatibilitΓ  Server Esterno** - βœ… `server/replitAuth.ts` - REPLIT_DOMAINS ora opzionale - βœ… Fallback automatico: `REPLIT_DOMAINS β†’ DOMAIN β†’ "vt.alfacom.it"` - βœ… REPL_ID opzionale (default: "vigilanza-turni") ### 2. **Fix Build & Dependencies** - βœ… `deploy/deploy.sh` - usa `npm ci --include=dev` - βœ… Vite e drizzle-kit installati correttamente (devDependencies) ### 3. **Script Automazione** - βœ… `fix-server.sh` - automatizza fix server - βœ… `DEPLOYMENT-FIX.md` - documentazione troubleshooting --- ## 🎯 Deployment in 4 Comandi ### **1. Push Modifiche a GitLab** ```bash # Su Replit (esegui nel terminale) git add . git commit -m "Fix deployment server esterno - REPLIT_DOMAINS opzionale" git push origin main ``` **Oppure usa lo script:** ```bash ./push-to-gitlab.sh "Fix deployment server esterno" ``` ### **2. Copia Script Fix sul Server** ```bash # Dal tuo PC/terminale scp fix-server.sh root@vt.alfacom.it:/var/www/vigilanza-turni/ ``` ### **3. Esegui Fix sul Server** ```bash # SSH al server ssh root@vt.alfacom.it # Naviga alla directory cd /var/www/vigilanza-turni # Pull ultime modifiche git pull origin main # Dai permessi ed esegui fix chmod +x fix-server.sh bash fix-server.sh ``` ### **4. Deploy Finale** ```bash # Ancora sul server bash deploy/deploy.sh ``` --- ## πŸ“‹ Output Atteso ### **βœ… Fix Script Success:** ``` πŸ”§ Fix Deployment Server - vt.alfacom.it ========================================== πŸ“ Step 1: Aggiornamento package.json scripts... βœ… Aggiunto DOMAIN=vt.alfacom.it βœ… Aggiunto ISSUER_URL βœ… deploy.sh giΓ  configurato correttamente βœ… Fix completato! ``` ### **βœ… Deploy Success:** ``` πŸš€ Deployment VigilanzaTurni - Thu Oct 16 12:01:24 EDT 2025 πŸ“₯ Pull ultime modifiche da GitLab... πŸ’Ύ Backup database pre-deployment... βœ… Backup salvato: /var/backups/vigilanza-turni/backup_20251016_120124.sql.gz πŸ“₯ Installazione dipendenze (include devDependencies)... added 521 packages, and audited 522 packages in 12s πŸ—οΈ Build frontend Vite... vite v6.4.0 building for production... βœ“ 2683 modules transformed. βœ“ built in 9.75s πŸ—„οΈ Verifica database schema... βœ… Schema sincronizzato πŸ”„ Restart applicazione... βœ… Deployment completato con successo! ``` ### **βœ… PM2 Running:** ``` β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ id β”‚ name β”‚ mode β”‚ β†Ί β”‚ status β”‚ cpu β”‚ memory β”‚ β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 0 β”‚ vigilanza-turni β”‚ fork β”‚ 0 β”‚ online β”‚ 0% β”‚ 66.1mb β”‚ β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## βœ… Verifica Applicazione Online ```bash # Test HTTPS curl -I https://vt.alfacom.it # Verifica PM2 logs (no errors) pm2 logs vigilanza-turni --lines 50 --nostream # Check database connection pm2 logs vigilanza-turni | grep -i "serving\|error" | tail -10 ``` **Output atteso:** ``` βœ… Deployment completato con successo! 🌐 Applicazione disponibile su: https://vt.alfacom.it ``` --- ## πŸ†˜ Troubleshooting ### ❌ Errore: "REPLIT_DOMAINS not provided" **Causa:** .env mancante di DOMAIN **Fix:** `echo "DOMAIN=vt.alfacom.it" >> .env` ### ❌ Errore: "Cannot find package vite" **Causa:** devDependencies non installate **Fix:** Verifica `deploy.sh` usa `npm ci --include=dev` ### ❌ Errore: PM2 restart loop **Causa:** Variabili env non caricate **Fix:** Controlla `.env` e verifica `source .env` in deploy.sh ### ❌ Errore: drizzle-kit push fallisce **Nota:** È normale se schema giΓ  aggiornato **Output:** `⚠️ Schema push skipped (database giΓ  aggiornato)` --- ## πŸ“Š Checklist Post-Deployment - [ ] Git push modifiche a GitLab βœ… - [ ] Script fix-server.sh eseguito βœ… - [ ] Deploy completato senza errori βœ… - [ ] PM2 status = online βœ… - [ ] https://vt.alfacom.it risponde βœ… - [ ] Logs PM2 senza errori REPLIT_DOMAINS βœ… - [ ] Database connesso βœ… - [ ] Backup automatici attivi βœ… --- ## πŸŽ‰ Risultato Finale βœ… **Applicazione VigilanzaTurni online su:** https://vt.alfacom.it **FunzionalitΓ  Attive:** - βœ… Build Vite (521 pacchetti) - βœ… Database PostgreSQL connesso - βœ… Autenticazione OIDC funzionante - βœ… PM2 process manager attivo - βœ… Backup automatici (retention 30 giorni) - βœ… SSL/TLS (Let's Encrypt) - βœ… Nginx reverse proxy --- ## πŸ“ File Principali | File | Descrizione | |------|-------------| | `server/replitAuth.ts` | Fix compatibilitΓ  server esterno | | `fix-server.sh` | Script automazione fix | | `deploy/deploy.sh` | Script deployment automatico | | `DEPLOYMENT-FIX.md` | Troubleshooting dettagliato | | `.env` | Variabili ambiente (DOMAIN, ISSUER_URL) | --- ## πŸ”„ Workflow Futuro Per deployment successivi: ```bash # 1. Sviluppo su Replit git add . && git commit -m "Nuova feature" && git push origin main # 2. Deploy su server ssh root@vt.alfacom.it "cd /var/www/vigilanza-turni && bash deploy/deploy.sh" ``` **Semplice!** πŸš€ --- **Supporto:** Per problemi consulta `DEPLOYMENT-FIX.md` o controlla logs con `pm2 logs vigilanza-turni`