Zum Inhalt springen

Schnellstart

pnpm dlx @rebasepro/cli init my-app

Dies erstellt ein Projekt mit drei Paketen:

OrdnerBeschreibung
frontend/React SPA — Vite + TypeScript mit der Rebase Admin-Benutzeroberfläche
backend/Node.js Server — Hono, PostgreSQL über Drizzle ORM, WebSocket
config/TypeScript-Sammlungsdefinitionen, die von beiden Seiten geteilt werden
  • Node.js 18+
  • PostgreSQL — lokale Installation, Docker oder eine beliebige verwaltete Datenbank (Neon, Supabase usw.)
  • pnpm (empfohlen) oder npm

Nach der Generierung bearbeiten Sie die Datei .env im Projektstammverzeichnis:

# PostgreSQL connection string
DATABASE_URL=postgresql://username:password@localhost:5432/your_database
# JWT secret for authentication (generate a strong random string)
JWT_SECRET=change-me-to-a-random-secret
# Frontend URL for CORS
VITE_API_URL=http://localhost:3001
# Optional: Google OAuth client ID
# VITE_GOOGLE_CLIENT_ID=your-google-client-id
pnpm dev

Dies startet:

  • Backend unter http://localhost:3001 — REST API, Authentifizierung, Speicher, WebSocket
  • Frontend unter http://localhost:5173 — Rebase Admin-Panel
  • Hot-Reload für beides — Änderungen werden sofort wirksam

Sie können sie auch einzeln starten:

pnpm dev:backend # Backend only
pnpm dev:frontend # Frontend only

Eine bestehende Datenbank introspektieren (Optional)

Abschnitt betitelt „Eine bestehende Datenbank introspektieren (Optional)“

Wenn Sie eine Verbindung zu einer bestehenden Datenbank mit bereits vorhandenen Tabellen herstellen, können Sie diese introspektieren, um Ihre TypeScript-Sammlungsdateien automatisch zu generieren:

pnpm rebase schema introspect

Dies analysiert Ihre Datenbanktabellen, Enums und Beziehungen und schreibt die entsprechenden Sammlungsdateien in config/collections/.

Wenn Sie http://localhost:5173 öffnen, sehen Sie den Anmeldebildschirm. Der erste Benutzer, der sich registriert, wird automatisch zum Administrator – dies ist der Bootstrap-Prozess.

  1. Klicken Sie auf Registrieren
  2. Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein
  3. Sie sind drin — mit vollem Administratorzugriff

Öffnen Sie config/collections/ und erstellen Sie eine neue Datei:

import { EntityCollection } from "@rebasepro/types";
export const productsCollection: EntityCollection = {
slug: "products",
name: "Products",
singularName: "Product",
table: "products",
properties: {
name: {
type: "string",
name: "Name",
validation: { required: true }
},
price: {
type: "number",
name: "Price",
validation: { required: true, min: 0 }
},
description: {
type: "string",
name: "Description",
multiline: true
},
active: {
type: "boolean",
name: "Active",
defaultValue: true
},
created_at: {
type: "date",
name: "Created At",
autoValue: "on_create"
}
}
};
rebase schema generate # Generate Drizzle schema from your collections
rebase db push # Push the schema to your database

Starten Sie die Entwicklungs-Server neu und Ihre neue Produkte-Sammlung erscheint in der Navigation.

BefehlBeschreibung
rebase schema generateDrizzle-Schema aus Ihren TypeScript-Sammlungen generieren
rebase schema introspectTypeScript-Sammlungen aus einer bestehenden Datenbank generieren
rebase db pushSchema-Änderungen direkt an die Datenbank übertragen (nur Entwicklung)
rebase db generateSQL-Migrationsdateien generieren
rebase db migrateAusstehende Migrationen ausführen