# πŸ”§ Fix Deployment Server vt.alfacom.it Guida completa per risolvere i problemi di deployment su AlmaLinux 9. ## πŸ” Problemi Risolti | Problema | Soluzione | |----------|-----------| | ❌ `REPLIT_DOMAINS not provided` | Reso opzionale con fallback a `vt.alfacom.it` | | ❌ Vite/drizzle-kit non trovati | `npm ci --include=dev` per installare devDependencies | | ❌ App crasha in loop | Fix variabili ambiente + compatibilitΓ  server esterno | | βœ… Build funzionante | Vite 521 pacchetti installati correttamente | ## πŸš€ Procedura Fix Rapida (3 Step) ### **Step 1: Copia Script Fix sul Server** ```bash # Dal tuo PC/terminale scp fix-server.sh root@vt.alfacom.it:/var/www/vigilanza-turni/ ``` ### **Step 2: Esegui Fix sul Server** ```bash ssh root@vt.alfacom.it cd /var/www/vigilanza-turni chmod +x fix-server.sh bash fix-server.sh ``` ### **Step 3: Deploy Aggiornato** ```bash # Ancora connesso al server bash deploy/deploy.sh ``` ## πŸ“‹ Cosa Fa lo Script fix-server.sh 1. βœ… Aggiorna `package.json` scripts per usare comandi robusti 2. βœ… Aggiunge `DOMAIN=vt.alfacom.it` al `.env` se mancante 3. βœ… Aggiunge `ISSUER_URL=https://replit.com/oidc` al `.env` se mancante 4. βœ… Verifica che `deploy.sh` usi `npm ci --include=dev` ## πŸ”§ Fix Manuali (Se Necessario) ### Fix 1: Variabili Ambiente (.env) Aggiungi al file `.env` sul server: ```bash # SSH al server ssh root@vt.alfacom.it nano /var/www/vigilanza-turni/.env # Aggiungi queste righe se mancanti: DOMAIN=vt.alfacom.it ISSUER_URL=https://replit.com/oidc ``` ### Fix 2: package.json Scripts Se lo script automatico fallisce, modifica manualmente: ```bash nano /var/www/vigilanza-turni/package.json ``` Trova la sezione `"scripts"` e aggiorna: ```json "scripts": { "dev": "NODE_ENV=development tsx server/index.ts", "build": "vite build && esbuild server/index.ts --platform=node --packages=external --bundle --format=esm --outdir=dist", "start": "NODE_ENV=production node dist/index.js", "check": "tsc", "db:push": "drizzle-kit push --force || drizzle-kit push || echo 'DB schema sync skipped'" } ``` ### Fix 3: deploy.sh DevDependencies ```bash nano /var/www/vigilanza-turni/deploy/deploy.sh ``` Trova la riga `npm ci` e cambiala in: ```bash npm ci --include=dev ``` ## βœ… Verifica Deployment Funzionante Dopo il deploy, verifica: ```bash # 1. PM2 status pm2 status # 2. Logs applicazione pm2 logs vigilanza-turni --lines 50 # 3. Test HTTP curl -I https://vt.alfacom.it # 4. Database connesso pm2 logs vigilanza-turni | grep -i "database\|error" | tail -20 ``` ## πŸ“Š Output Atteso **Build Success:** ``` βœ“ 2683 modules transformed. βœ“ built in 9.75s ``` **PM2 Running:** ``` β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ id β”‚ name β”‚ mode β”‚ β†Ί β”‚ status β”‚ cpu β”‚ memory β”‚ β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 0 β”‚ vigilanza-turni β”‚ fork β”‚ 0 β”‚ online β”‚ 0% β”‚ 66.1mb β”‚ β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **No Errors:** ``` πŸ₯ Health check... βœ… Deployment completato con successo! ``` ## πŸ”„ Workflow Deployment Completo ```bash # 1. Push modifiche da Replit a GitLab ./push-to-gitlab.sh # 2. Deploy su server ssh root@vt.alfacom.it "cd /var/www/vigilanza-turni && bash deploy/deploy.sh" # 3. Verifica applicazione curl https://vt.alfacom.it ``` ## πŸ†˜ Troubleshooting ### Problema: App crasha con "REPLIT_DOMAINS" **Soluzione:** Assicurati che `server/replitAuth.ts` sia aggiornato con i fallback ### Problema: "Cannot find package vite" **Soluzione:** `npm ci --include=dev` installa devDependencies (vite, drizzle-kit) ### Problema: DB migration fallisce **Soluzione:** Schema giΓ  aggiornato, il warning `⚠️ Schema push skipped` Γ¨ normale ### Problema: PM2 restart loop **Soluzione:** Controlla logs con `pm2 logs vigilanza-turni --err --lines 100` ## πŸ“ File Modificati - βœ… `server/replitAuth.ts` - Supporto deployment non-Replit - βœ… `deploy/deploy.sh` - npm ci --include=dev - βœ… `.env` - DOMAIN e ISSUER_URL - βœ… `fix-server.sh` - Script automazione fix - βœ… `replit.md` - Documentazione aggiornata ## 🎯 Risultato Finale βœ… Applicazione online su: **https://vt.alfacom.it** βœ… Build Vite funzionante (521 packages) βœ… Database connesso e migrations sync βœ… PM2 running senza errori βœ… Backup automatici attivi (retention 30 giorni) --- **Supporto:** Per problemi contatta l'amministratore del sistema.