👋 Benvenuto nell'Infrastruttura Self-Hosted
Questo strumento ti permette di generare il file `user-data.yaml` necessario per configurare automaticamente un VPS basato su **Debian 13** al momento del suo avvio (tramite **cloud-init**).
Cosa fa lo script:
- Installa **Docker** e **Docker Compose** su Debian 13.
- Configura **Traefik** come reverse-proxy con certificati **Let's Encrypt** automatici.
- Definisce una rete Docker (`traefik-net`) e monta i volumi persistenti necessari.
- Lancia uno stack di servizi essenziali:
- **Coolify:** Piattaforma di hosting e deployment.
- **SemaphoreUI:** Interfaccia utente per Ansible (se volessi automatizzare in un secondo momento).
- **Freqtrade:** Bot di trading (per gli appassionati di crypto).
- **n8n:** Strumento di automazione workflow (simil Zapier).
- **FOSSBilling:** Sistema di fatturazione e gestione clienti.
- **Codium-Server:** Editor di codice in-browser per la gestione delle configurazioni.
- **Keycloak (Opzionale):** Sistema di Single Sign-On (SSO) e Identity Management.
- Applica un **hardening** di base (aggiornamento, ufw, disabilita login root SSH).
Pronti per Iniziare?
Naviga alla pagina **Configura il tuo VPS** per inserire i parametri specifici per la tua infrastruttura.
❓ Troubleshooting (Guida Rapida)
Certificato non Rilasciato (Errore 502/Timeout)
Causa: Traefik non è riuscito a ottenere il certificato Let's Encrypt.
Soluzione:
- Verifica che il tuo dominio DuckDNS punti all'IP corretto del VPS.
- Controlla i log di Traefik:
docker logs traefik. Cerca messaggi di errore ACME. - Assicurati che le porte 80 e 443 non siano bloccate dal firewall (UFW). Lo script cloud-init le apre, ma verifica:
sudo ufw status.
Permessi Volume Errati (Errore di I/O o Container non si avvia)
Causa: Il container non può scrivere nel volume perché i permessi (UID/GID) sul VPS non corrispondono a quelli del processo interno al container.
Soluzione:
- Controlla i log del container:
docker logs <nome-servizio>. Cerca errori di "permission denied". - Connettiti al VPS e ricrea/ripristina i permessi sul volume (es. per n8n, che spesso usa l'utente `node` con un certo UID):
sudo chown -R 1000:1000 /srv/volumes/n8n(i permessi corretti dipendono dal container). - Il cloud-init tenta di settare permessi generici per l'utente docker, ma potrebbe essere necessario personalizzare.
Traefik non Routea (Risponde solo la dashboard o "404 Not Found")
Causa: Le etichette Docker (labels) sul container non sono corrette o la rete Traefik non è collegata.
Soluzione:
- Verifica che i container siano sulla rete `traefik-net`:
docker inspect <nome-servizio> | grep traefik-net. - Controlla la configurazione (labels) tramite l'interfaccia di Traefik (`traefik.miodominio.duckdns.org`) per vedere se i servizi sono stati rilevati correttamente.
- Riavvia lo stack se hai modificato il compose file:
docker compose down && docker compose up -d.
Keycloak Login Fallisce (Se abilitato)
Causa: Credenziali iniziali errate o configurazione del database non riuscita.
Soluzione:
- Controlla i log di Keycloak e PostgreSQL.
- Verifica di aver usato le credenziali iniziali corrette definite nel form per l'utente admin del realm (non l'utente DB).