Einführung
Was ist Rebase?
Abschnitt betitelt „Was ist Rebase?“Rebase ist das Open-Source-Backend für PostgreSQL, mit einem Admin-Panel für dein Team, entwickelt mit React und TypeScript. Es bietet dir alles, was du brauchst, um eine produktionsreife Anwendung auf der Basis von PostgreSQL zu erstellen:
- Schema as Code — Definiere deine Datenmodelle als TypeScript-Collections. Rebase generiert PostgreSQL-Tabellen, eine vollständige CRUD-UI, REST-API-Endpunkte und ein typisiertes SDK aus einer einzigen Quelle der Wahrheit (Single Source of Truth).
- Sofortiges Admin-Panel — Ein ansprechendes, schnelles React-basiertes Panel mit Tabellenkalkulationen, Listen, Formularen, Kanban-Boards, Inline-Bearbeitung und Echtzeit-Synchronisierung.
- Integriertes Backend — Authentifizierung (Passwörter, Magic Links, Einmalcodes, MFA, API-Schlüssel und zwölf OAuth/OIDC-Anbieter), Dateispeicher (lokal oder S3), Row Level Security, Entity-Historie und WebSocket-Echtzeit — alles direkt integriert.
- Radikal erweiterbar — Wenn du es in React bauen kannst, kannst du es zu Rebase hinzufügen. Eigene Felder, benutzerdefinierte Ansichten, Plugins und voller Zugriff auf interne Hooks.
Wähle deinen Weg
Abschnitt betitelt „Wähle deinen Weg“Rebase ist ein Backend und ein Admin-Panel, die sich einen Server teilen. Starte mit dem, wonach du suchst:
| Ich möchte… | Hier starten | Was du bekommst |
|---|---|---|
| Ein Backend und ein Admin-Panel | Quickstart | Collections in TypeScript, eine generierte CRUD-UI, eine REST-API, Auth, Storage und Echtzeit |
| Nur die API über meiner eigenen Datenbank | Backend only | Eine Headless-REST-API und ein SDK über deiner bestehenden PostgreSQL-Datenbank — kein Admin-Panel, keine Collection-Dateien |
Keine der beiden Optionen ist eine Einbahnstraße: Ein Headless-Projekt erhält durch das Hinzufügen von Collection-Dateien ein Admin-Panel, und ein vollständiges Projekt kann Tabellen bereitstellen, für die es keine Collection gibt.
Wie es funktioniert
Abschnitt betitelt „Wie es funktioniert“┌──────────────────────────────────────────────────────┐│ Client Applications ││ ┌──────────────┐ ┌───────────────────────────────┐ ││ │ Your App │ │ Rebase CMS + Studio │ ││ │ (Any Tech) │ │ Tables / Lists / Kanban │ ││ └──────┬───────┘ └──────────────┬────────────────┘ │└─────────┼──────────────────────────┼─────────────────┘ │ HTTP + WebSocket │ ▼ ▼┌──────────────────────────────────────────────────────┐│ Rebase Backend (Node.js + Hono) ││ ┌─────────┐ ┌──────┐ ┌─────────┐ ┌───────────────┐ ││ │ REST API│ │ Auth │ │ Storage │ │ WebSocket RT │ ││ └────┬────┘ └──┬───┘ └────┬────┘ └──────┬────────┘ │└───────┼─────────┼──────────┼─────────────┼───────────┘ │ │ │ │ ▼ ▼ ▼ ▼┌──────────────────────────────────────────────────────┐│ PostgreSQL (Drizzle ORM) │└──────────────────────────────────────────────────────┘Schnellstart
Abschnitt betitelt „Schnellstart“pnpm dlx @rebasepro/cli init my-appcd my-appinit generiert eine sofort einsatzbereite .env-Datei für dich — keine Bearbeitung erforderlich. Danach:
pnpm installpnpm run devDas ist schon der gesamte erste Start. Es muss keine Datenbank installiert und kein Schema-Schritt ausgeführt werden: Wenn keine DATABASE_URL gesetzt ist, startet rebase dev ein verwaltetes PostgreSQL (PGlite) im Projektverzeichnis, generiert das Schema aus deinen Collections und erstellt die Tabellen beim Starten.
Lies die URLs aus der Ausgabe ab. rebase dev wählt für jedes Projekt einen freien Port statt fester Ports, sodass sie sich von Projekt zu Projekt und zwischen verschiedenen Rechnern unterscheiden. Das erste Konto, das du registrierst, wird zum Administrator — auf deinem Rechner. Bei einem Produktiv-Deployment wird der Admin stattdessen über REBASE_ADMIN_EMAIL und REBASE_ADMIN_PASSWORD definiert (siehe Konfiguration).
Um stattdessen deine eigene Postgres-Datenbank zu verwenden, entferne den Kommentar vor DATABASE_URL in der .env und führe pnpm run dev erneut aus.
→ Folge dem vollständigen Quickstart-Leitfaden für eine ausführliche Anleitung, einschließlich der Anbindung deiner eigenen Datenbank.
Kernfunktionen
Abschnitt betitelt „Kernfunktionen“| Feature | Beschreibung |
|---|---|
| Tabellenkalkulations-Ansichten | Schnelle, virtualisierte Tabelle mit Inline-Bearbeitung, Filterung, Sortierung und Volltextsuche |
| Listenansicht | Übersichtliche, responsive vertikale Listenansicht für Collections |
| Kanban-Board | Drag-and-Drop-Boardansicht, gruppiert nach beliebigen Enum-Eigenschaften |
| Relationen | One-to-One, One-to-Many, Many-to-Many mit Junction-Tables und Multi-Hop-Joins |
| Row Level Security | Supabase-ähnliche RLS-Policies, definiert in deiner Collection-Konfiguration |
| Authentifizierung | JWT + Refresh-Token, zwölf OAuth/OIDC-Anbieter, Magic Links, Einmalcodes, TOTP MFA, berechtigungseingeschränkte API-Schlüssel, rollenbasierte Zugriffskontrolle |
| Dateispeicher | Lokales Dateisystem oder S3-kompatibel mit Upload-Feldern und Dateibrowser |
| Echtzeit-Synchronisierung | WebSocket-gestützte Live-Updates für alle verbundenen Clients |
| Entity-Historie | Vollständiges Audit-Protokoll für jede Erstellung, Aktualisierung und Löschung |
| REST-API | Automatisch generierte CRUD-Endpunkte für jede Collection |
| Datenimport/-export | CSV-, JSON- und Excel-Import mit Feldzuordnung; CSV/JSON-Export |
| Collection-Editor | Visueller Schema-Editor, der TypeScript über AST-Manipulation generiert |
| Typisiertes SDK | Typsicheres JavaScript-SDK für deine Frontend-Anwendungen |
| Plugin-System | Erweitere jeden Teil der UI — Symbolleiste, Formulare, Felder, Startseite |
| KI-Datenanreicherung | LLM-gestützte Autovervollständigung für Textfelder |
| Cron-Jobs | Geplante Hintergrundaufgaben mit Überwachung, Protokollierung und Studio-Dashboard |
| Benutzerdefinierte Funktionen | Dateibasierte Hono-Routen, automatisch eingebunden mit Auth-Middleware und Datenbankzugriff |
| E-Mail-Dienst | Integriertes SMTP für Passwort-Zurücksetzungen, Verifizierungen und transaktionale E-Mails |
| Database Branching | Sofortige, isolierte Kopien deiner Datenbank für Entwicklung, Staging oder Tests |
| Webhooks | HMAC-signierte ausgehende Benachrichtigungen bei INSERT, UPDATE, DELETE |
| Broadcast-Kanäle | WebSocket-Kanäle für Echtzeit-Messaging zwischen verbundenen Clients |
| Presence Tracking | Online-Benutzer erfassen und gemeinsamen Status zwischen Teilnehmern synchronisieren |
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Quickstart — In 2 Minuten startklar
- Backend only — Die Headless-API über einer Datenbank, die du bereits hast
- Projektstruktur — Verstehe den generierten Code und die fünf Begriffe, die auf den restlichen Seiten vorausgesetzt werden
- Collections — Definiere dein Datenschema
- Backend — Konfiguriere Auth, Storage und die API
- Architektur — Verstehe, wie alles zusammenhängt