Rebase auf Fly.io bereitstellen
Fly.io ermöglicht es Ihnen, Docker-Container über sein globales Anycast-Netzwerk nah bei Ihren Benutzern zu hosten. Fly ist hinsichtlich der Datenweiterleitung hochgradig konfigurierbar, was es zu einer ausgezeichneten Wahl für die Bereitstellung von Rebase-Anwendungen mit einem strengen Fokus auf europäische Daten macht.
Fly.io verfügt über Rechenzentren in Amsterdam (ams), Frankfurt (fra), Madrid (mad) und Paris (cdg).
1. Die Fly-App initialisieren
Abschnitt betitelt „1. Die Fly-App initialisieren“Führen Sie in Ihrem lokalen Rebase-Repository, nachdem Sie sichergestellt haben, dass die Fly CLI (flyctl) installiert ist, folgenden Befehl aus:
fly launch- App-Name:
my-rebase-app - Organisation: Persönlich oder Ihre Unternehmens-Org.
- Region: Wenn Sie nach einer Region gefragt werden, wählen Sie explizit ein europäisches Rechenzentrum wie Frankfurt (fra) oder Paris (cdg).
- Datenbank: Wenn Sie aufgefordert werden, eine Postgres-Datenbank einzurichten, sagen Sie Ja. Fly erstellt automatisch einen Postgres-Cluster in derselben Region und injiziert die
DATABASE_URLsicher in Ihre App. - Redis: Sagen Sie Nein.
Stellen Sie noch nicht bereit, wenn Sie dazu aufgefordert werden. Wir müssen zuerst eine wichtige Umgebungsvariable festlegen.
2. Das JWT-Geheimnis festlegen
Abschnitt betitelt „2. Das JWT-Geheimnis festlegen“Bevor Ihre Anwendung in Produktion geht, müssen Sie das JWT-Geheimnis injizieren, damit Rebase Authentifizierungstoken-Operationen sicher signieren kann.
Führen Sie den folgenden Befehl lokal aus:
fly secrets set JWT_SECRET=your_super_long_randomly_generated_secure_string -a my-rebase-app3. Interne Konfiguration validieren
Abschnitt betitelt „3. Interne Konfiguration validieren“Fly hat eine fly.toml-Datei im Stammverzeichnis Ihres Projekts generiert. Überprüfen Sie, ob der interne Port explizit mit der Rebase-Standardkonfiguration (3001) übereinstimmt:
# fly.tomlapp = "my-rebase-app"primary_region = "fra"
[build] # Der Build-Kontext ist das Projekt-Stammverzeichnis; das Backend-Dockerfile # benötigt den gesamten Workspace (pnpm-workspace.yaml, backend/, config/). dockerfile = "backend/Dockerfile"
[http_service] internal_port = 3001 # Make sure this matches your Hono app port force_https = true auto_stop_machines = true auto_start_machines = true min_machines_running = 14. Bereitstellen
Abschnitt betitelt „4. Bereitstellen“Ihre Daten sind lokalisiert, Ihre Datenbank ist bereitgestellt und Ihre Geheimnisse sind injiziert. Starten Sie die Bereitstellung:
fly deploySobald das Parsen und Hochladen abgeschlossen ist, wird Ihre Anwendung automatisch online gehen. Führen Sie fly open aus, um Ihre bereitgestellte App im Browser anzuzeigen!
5. Datenbankschema erstellen
Abschnitt betitelt „5. Datenbankschema erstellen“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:pushOhne 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. Öffnen Sie mit fly proxy 5432 -a <postgres-app> einen lokalen Tunnel zur Fly-Postgres-Instanz und setzen Sie DATABASE_URL entsprechend auf localhost:5432.
Für versionierte Migrationen verwenden Sie stattdessen pnpm run db:generate und pnpm run db:migrate.
