Zum Inhalt springen

Rebase auf Microsoft Azure bereitstellen

Microsoft Azure bietet enge Integrationen und unternehmensweite Compliance. Die optimale Architektur für den Betrieb von Rebase auf Azure umfasst die Verwendung von Azure Database for PostgreSQL - Flexible Server für die Datenschicht und Azure Container Apps zum Hosten des Backend-Containers.

Um die europäischen Daten-Compliance und schnelle lokale Antwortzeiten zu gewährleisten, stellen Sie Ihre Ressourcen in Regionen wie Westeuropa (Amsterdam), Nordeuropa (Irland) oder Zentralfrankreich (Paris) bereit.

  1. Suchen und wählen Sie im Azure-Portal Azure Database for PostgreSQL servers aus.
  2. Klicken Sie auf Erstellen und wählen Sie Flexibler Server aus.
  3. Wählen Sie Ihre Ressourcengruppe und legen Sie Ihre bevorzugte EU-Region fest.
  4. Wählen Sie Ihre Compute-Größe aus (z. B. General Purpose oder Burstable B2s für kleinere Bereitstellungen).
  5. Richten Sie die Registerkarte Authentifizierung mit einem Administrator-Benutzernamen und einem sicheren Passwort ein.
  6. Stellen Sie unter Netzwerk sicher, dass “Öffentlichen Zugriff von jedem Azure-Dienst innerhalb von Azure auf diesen Server zulassen” aktiviert ist, damit Ihre Container App eine Verbindung herstellen kann, oder konfigurieren Sie ein sicheres VNet.
  7. Notieren Sie Ihren Servernamen und erstellen Sie die Verbindungs-URI: postgresql://your_admin:YOUR_PASSWORD@your-server-name.postgres.database.azure.com:5432/postgres

2. Erstellen und Pushen zu Azure Container Registry (ACR)

Abschnitt betitelt „2. Erstellen und Pushen zu Azure Container Registry (ACR)“

Azure Container Apps zieht Ihr Docker-Image aus ACR.

  1. Erstellen Sie eine neue Container Registry in Ihrer ausgewählten EU-Region.
  2. Melden Sie sich über Ihre CLI an:
    az acr login --name YourRegistryName
  3. Erstellen und pushen Sie das Rebase-Image aus Ihrem lokalen Repository — aus dem Projekt-Stammverzeichnis, da das Backend-Dockerfile den gesamten Workspace als Build-Kontext benötigt (es kopiert pnpm-workspace.yaml, backend/ und config/):
    docker build -t yourregistryname.azurecr.io/rebase-backend:latest -f backend/Dockerfile .
    docker push yourregistryname.azurecr.io/rebase-backend:latest

Azure Container Apps bietet eine serverlose Container-Umgebung mit integriertem HTTPS-Ingress.

  1. Suchen Sie im Portal nach Container Apps und klicken Sie auf Erstellen.
  2. Erstellen Sie eine neue Container Apps-Umgebung in Ihrer EU-Region.
  3. Zeigen Sie auf der Registerkarte Container auf Ihre ACR-Registrierung und wählen Sie das Image rebase-backend:latest aus.
  4. Legen Sie die Umgebungsvariablen fest:
Name Wert
DATABASE_URL Ihre Azure Postgres Verbindungszeichenfolge
JWT_SECRET Eine sichere, zufällige Zeichenfolge mit 32+ Zeichen
NODE_ENV production
  1. Aktivieren Sie unter der Registerkarte Ingress explizit den Ingress.
  2. Stellen Sie den Zielport auf 3001 ein.
  3. Schließen Sie die Erstellung ab. Azure stellt den Container automatisch bereit und liefert Ihnen eine mit TLS gesicherte Anwendungs-URL!

Beim Start erstellt Rebase automatisch nur die Auth-Tabellen. Die Tabellen für Ihre eigenen Collections werden nicht automatisch angelegt — Sie müssen das Schema einmalig gegen die Produktionsdatenbank pushen:

pnpm run db:push

Ohne diesen Schritt gibt jede Collection einen missing table-Fehler zurück. Die Falle dabei: Die App startet trotzdem und die Anmeldung funktioniert (die Auth-Tabellen existieren), sodass die Bereitstellung zunächst gesund aussieht.

Führen Sie den Befehl aus einem Projekt-Checkout oder aus CI aus, wobei DATABASE_URL auf die Produktionsdatenbank zeigt — nicht im Container, da das Produktions-Image ohne die CLI ausgeliefert wird. Fügen Sie in Azure Database for PostgreSQL vorübergehend eine Firewall-Regel für Ihre IP-Adresse hinzu, damit Sie die Produktionsdatenbank von Ihrem Rechner aus erreichen können.

Für versionierte Migrationen verwenden Sie stattdessen pnpm run db:generate und pnpm run db:migrate.