Zum Inhalt springen

Einführung

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.

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.

┌──────────────────────────────────────────────────────┐
│ 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) │
└──────────────────────────────────────────────────────┘
pnpm dlx @rebasepro/cli init my-app
cd my-app

init generiert eine sofort einsatzbereite .env-Datei für dich — keine Bearbeitung erforderlich. Danach:

pnpm install
pnpm run dev

Das 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.

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
  • 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