Deploy e CI/CD
La sezione Deployments ti permette di deployare siti web e applicazioni su diversi target con supporto per repository Git, upload file e deploy manuali.
Sorgenti Supportate
Repository Git
Deploy da repository Git:
- GitHub - Repository pubblici e privati
- GitLab - Self-hosted o GitLab.com
- Bitbucket - Atlassian Bitbucket
- Qualsiasi Git - URL clone generico
Upload File
Carica direttamente i file:
- ZIP - Archivio compresso
- File singoli - Drag & drop
Cartella Locale
Per sviluppo locale:
- Deploy da VS Code
- Deploy da Cursor
- CLI integrata
Deploy Manuale
Configura ora, carica dopo:
- SSH/SFTP manuale
- Webhook da CI esterno
Target di Deploy
VPS / Server SSH
Deploy su server Linux via SSH:
| Provider | Supporto |
|---|---|
| IONOS | β |
| Hetzner | β |
| OVH | β |
| DigitalOcean | β |
| Qualsiasi VPS | β |
Requisiti:
- Accesso SSH
- IP pubblico
Docker Locale
Container sul tuo server:
- Dockerfile auto-generato
- Build automatico
- Gestione container
Docker Remoto
Container su server remoti:
- Docker API via TLS
- Registri privati
- Multi-host
RunPod (GPU)
Per workload AI/ML:
- GPU cloud on-demand
- Template predefiniti
- Scaling automatico
Kubernetes
Deploy su cluster K8s:
- EKS (Amazon)
- GKE (Google)
- AKS (Azure)
- Self-hosted
Vercel
Per progetti Next.js:
- Deploy serverless
- Preview automatiche
- Edge functions
Netlify
Per siti statici e JAMstack:
- Build automatiche
- Forms integrati
- Deploy atomici
Cloudflare Pages
Alternativa a Vercel/Netlify:
- Edge computing
- Workers integrati
- Gratis generoso
Creare un Nuovo Deploy
Passo 1: Scegli il Sito
- Vai su Deployments
- Clicca + Nuovo Deploy
- Seleziona il sito o creane uno nuovo
Passo 2: Configura la Sorgente
Da Git:
- Inserisci URL repository
- Seleziona branch (main, master, ecc.)
- Per repo privati, aggiungi token/SSH key
Da Upload:
- Trascina il file ZIP
- O clicca per selezionare
Passo 3: Scegli il Target
Seleziona dove deployare:
- Scegli il tipo (VPS, Docker, Vercel, ecc.)
- Configura le credenziali
Per VPS:
| Campo | Descrizione |
|---|---|
| Host | IP o hostname |
| Username | Utente SSH |
| Chiave SSH | O password |
| Percorso | /var/www/miosito |
Passo 4: Configura la Build
Se necessario, imposta comandi di build:
| Campo | Esempio |
|---|---|
| Install | npm install |
| Build | npm run build |
| Output | dist/ o build/ |
Passo 5: Environment Variables
Aggiungi variabili dβambiente:
NODE_ENV=production
API_URL=https://api.example.com
DATABASE_URL=postgres://...
Passo 6: Deploy
- Rivedi la configurazione
- Clicca Deploy
- Monitora i log in tempo reale
Strategie di Deploy
Direct Deploy
Deploy diretto senza downtime zero:
- PiΓΉ semplice
- Adatto per siti piccoli
- Possibile breve downtime
Blue-Green
Due ambienti identici:
- Deploy su ambiente βBlueβ
- Test
- Switch del traffico su βBlueβ
- βGreenβ diventa backup
Vantaggi:
- Zero downtime
- Rollback istantaneo
Canary
Deploy graduale:
- Deploy su 10% del traffico
- Monitora errori
- Se OK, incrementa a 50%, poi 100%
Vantaggi:
- Rischio ridotto
- Problemi isolati
Monitorare i Deploy
Log in Tempo Reale
Durante il deploy vedi:
- Comandi eseguiti
- Output della build
- Errori eventuali
- Progresso complessivo
Storico Deploy
Per ogni sito, lo storico mostra:
- Data/ora deploy
- Stato (successo, fallito, rollback)
- Commit/versione
- Durata
- Utente che ha deployato
Rollback
Rollback Rapido
Se qualcosa va storto:
- Vai allo storico deploy
- Trova il deploy funzionante
- Clicca Rollback a questa versione
- Conferma
Rollback Automatico
Configurabile per:
- Errore durante la build
- Health check fallito dopo deploy
- Errore HTTP 5xx
Auto-Deploy
Webhook Git
Configura deploy automatico su push:
- Vai nelle impostazioni del deploy
- Copia il Webhook URL
- Aggiungi come webhook nel repo Git
- Ogni push su branch configurato β deploy automatico
Trigger Branches
Configura branch specifici:
mainβ Produzionestagingβ Ambiente di testdevelopβ Development
Docker Deploy
Dockerfile Auto-generato
Polipo rileva il tipo di progetto e genera Dockerfile:
React/Vue/Next.js:
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN npm install && npm run build
EXPOSE 3000
CMD ["npm", "start"]
PHP:
FROM php:8.2-apache
COPY . /var/www/html/
Dockerfile Personalizzato
Se preferisci, crea il tuo Dockerfile nel repo.
Docker Compose
Per app multi-container, Polipo supporta docker-compose.yml.
Hardened Images
Polipo offre immagini Docker pre-configurate e sicure:
| Immagine | Descrizione |
|---|---|
| Node.js | Alpine hardened |
| PHP | Apache/FPM secure |
| Python | Flask/Django ready |
| Nginx | Reverse proxy |
Troubleshooting
Build Fallita
Cause comuni:
- Dipendenze mancanti
- Versione Node/PHP errata
- Script di build non configurato
- Out of memory
Soluzioni:
- Verifica
package.json/composer.json - Imposta la versione corretta
- Configura il comando build
- Aumenta la memoria
Deploy SSH Fallito
Cause comuni:
- Credenziali errate
- Porta SSH bloccata
- Permessi directory
Soluzioni:
- Verifica username e password/chiave
- Controlla firewall
chmod 755 /var/www/miosito
Container Non Parte
Cause comuni:
- Porta giΓ in uso
- Variabili mancanti
- Dockerfile errato
Soluzioni:
- Cambia porta
- Aggiungi tutte le env vars
- Testa Dockerfile in locale
Best Practices
- Usa Git - Sempre versiona il codice
- Environment Variables - Mai credenziali nel codice
- Build separata - Builda prima, deploya lβartefatto
- Test prima del deploy - CI/CD completo
- Rollback pronto - Sempre un piano B
- Monitor dopo deploy - Controlla errori e performance
- Deploy frequenti - Piccoli cambiamenti, meno rischi