Zum Inhalt springen

Rebase auf Hetzner Cloud bereitstellen

Hetzner Cloud ist weithin bekannt für sein unglaubliches Preis-Leistungs-Verhältnis und eine Top-Wahl für Projekte, die strenge europäische Datenhoheit und GDPR-Konformität erfordern (mit Rechenzentren in Nürnberg, Falkenstein und Helsinki).

Die Bereitstellung von Rebase auf Hetzner erfolgt am einfachsten über Docker Compose auf einer Standard-Ubuntu-Cloud-Instanz.

  1. Melden Sie sich bei Ihrer Hetzner Cloud Konsole an.
  2. Klicken Sie auf Server hinzufügen.
  3. Wählen Sie Ihren bevorzugten Standort (z.B. Falkenstein oder Nürnberg).
  4. Wählen Sie ein Image: Wählen Sie Ubuntu 24.04 oder App -> Docker CE (dies installiert Docker für Sie vor).
  5. Wählen Sie einen Typ: Ein CPX21 (3 Kerne, 4 GB RAM) oder CX32 (4 Kerne, 8 GB RAM) bietet eine ausgezeichnete Basiskapazität für den Betrieb von Rebase + Postgres.
  6. Fügen Sie Ihren SSH-Schlüssel hinzu und klicken Sie auf Erstellen.

Sobald Ihr Server bereitgestellt ist, rufen Sie die öffentliche IP-Adresse ab.

ssh root@<your-server-ip>

Wenn Sie das Docker-Image nicht gewählt haben, installieren Sie Docker und Docker Compose explizit:

apt update && apt install docker.io docker-compose-v2 -y

Klonen Sie Ihr Rebase-Projekt direkt auf die Serverinstanz.

git clone https://github.com/your-username/your-rebase-repo.git /opt/rebase
cd /opt/rebase

Rebase stellt standardmäßig eine docker-compose.yml bereit. Sie müssen Ihre Produktionsumgebungsvariablen definieren. Erstellen Sie eine .env.production Datei:

nano .env.production

Fügen Sie Ihre Geheimnisse hinzu:

DATABASE_URL=postgresql://rebase:your_secure_db_password@postgres:5432/rebase
JWT_SECRET=generate_a_very_long_secure_random_string_here
NODE_ENV=production

Stellen Sie sicher, dass Sie docker-compose.yml aktualisieren, wenn Sie das Postgres-Passwort aus einer Umgebungsvariablen abrufen möchten.

Bringen Sie den Stack im Detached-Modus online:

docker compose --env-file .env.production up -d --build

Docker erstellt Ihr Node.js-Backend aus dem lokalen Dockerfile und startet den Postgres-Container. Nach Abschluss läuft Ihre App auf http://localhost:3001 (intern auf dem Server).

Sie sollten Port 3001 niemals direkt und ohne SSL dem Internet aussetzen. Wir empfehlen, Caddy vor Ihre Rebase-Instanz zu stellen, um Let’s Encrypt-Zertifikate automatisch bereitzustellen.

Caddy installieren:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy

Bearbeiten Sie Ihre Caddyfile:

nano /etc/caddy/Caddyfile

Fügen Sie Folgendes hinzu (ersetzen Sie dies durch Ihre Domain, deren A-Record auf diese Hetzner IP zeigen sollte):

admin.yourdomain.com {
reverse_proxy localhost:3001
}

Caddy neu starten:

systemctl restart caddy

Das war’s! Ihre Rebase-Plattform wird sicher und vollständig innerhalb der EU gehostet.