Distribuzione di Rebase su Hetzner Cloud
Hetzner Cloud è ampiamente riconosciuto per offrire incredibili rapporti prestazioni/prezzo ed è una scelta eccellente per progetti che richiedono una rigorosa sovranità dei dati europea e conformità al GDPR (con data center a Norimberga, Falkenstein e Helsinki).
La distribuzione di Rebase su Hetzner è più semplice tramite Docker Compose su un’istanza cloud Ubuntu standard.
1. Provisioning di un Server
Sezione intitolata “1. Provisioning di un Server”- Accedi alla tua Console Hetzner Cloud.
- Clicca su Aggiungi Server.
- Scegli la tua Posizione preferita (es. Falkenstein o Norimberga).
- Scegli un’Immagine: Seleziona Ubuntu 24.04 o App -> Docker CE (questo pre-installerà Docker per te).
- Scegli un Tipo: Un
CPX21(3 core, 4GB RAM) oCX32(4 core, 8GB RAM) fornisce un’eccellente base di calcolo per l’esecuzione di Rebase + Postgres. - Aggiungi la tua chiave SSH e clicca su Crea.
2. SSH e Configurazione
Sezione intitolata “2. SSH e Configurazione”Una volta che il tuo server è stato provisionato, recupera l’indirizzo IP pubblico.
ssh root@<your-server-ip>Se non hai scelto l’immagine Docker, installa Docker e Docker Compose esplicitamente:
apt update && apt install docker.io docker-compose-v2 -y3. Clona e Configura Rebase
Sezione intitolata “3. Clona e Configura Rebase”Clona il tuo progetto Rebase direttamente sull’istanza del server.
git clone https://github.com/your-username/your-rebase-repo.git /opt/rebasecd /opt/rebaseRebase fornisce un docker-compose.yml pronto all’uso. Dovrai definire le tue variabili d’ambiente di produzione. Crea un file .env.production:
nano .env.productionAggiungi i tuoi segreti:
DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebaseJWT_SECRET=generate_a_very_long_secure_random_string_hereNODE_ENV=productionAssicurati di aggiornare docker-compose.yml se vuoi prelevare la password di Postgres da una variabile d’ambiente.
4. Esegui lo Stack
Sezione intitolata “4. Esegui lo Stack”Porta lo stack online utilizzando la modalità detached:
docker compose --env-file .env.production up -d --buildDocker costruirà il tuo backend Node.js dal Dockerfile locale e avvierà il container Postgres. Una volta completato, la tua app sarà in esecuzione su http://localhost:3001 (interno al server).
5. Esposizione tramite Caddy o Nginx
Sezione intitolata “5. Esposizione tramite Caddy o Nginx”Non dovresti mai esporre la porta 3001 direttamente a Internet senza SSL. Raccomandiamo di posizionare Caddy davanti alla tua istanza Rebase per provisionare automaticamente i certificati Let’s Encrypt.
Installa Caddy:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-httpscurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.listsudo apt update && sudo apt install caddyModifica il tuo Caddyfile:
nano /etc/caddy/CaddyfileAggiungi quanto segue (sostituisci con il tuo dominio, che dovrebbe avere il suo record A che punta a questo IP Hetzner):
admin.yourdomain.com { reverse_proxy localhost:3001}Riavvia Caddy:
systemctl restart caddyQuesto è tutto! La tua piattaforma Rebase è ospitata in modo sicuro interamente all’interno dell’UE.