Aller au contenu

Démarrage rapide

pnpm dlx @rebasepro/cli init my-app

Ceci échafaude un projet avec trois packages :

DossierDescription
frontend/SPA React — Vite + TypeScript avec l’interface d’administration Rebase
backend/Serveur Node.js — Hono, PostgreSQL via Drizzle ORM, WebSocket
config/Définitions de collections TypeScript partagées par les deux parties
  • Node.js 18+
  • PostgreSQL — installation locale, Docker, ou toute base de données gérée (Neon, Supabase, etc.)
  • pnpm (recommandé) ou npm

Après l’échafaudage, modifiez le fichier .env à la racine du projet :

# 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

Ceci démarre :

  • Backend à http://localhost:3001 — API REST, authentification, stockage, WebSocket
  • Frontend à http://localhost:5173 — Panneau d’administration Rebase
  • Hot reload pour les deux — les changements prennent effet instantanément

Vous pouvez également les démarrer individuellement :

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

Introspection d’une Base de Données Existante (Optionnel)

Section intitulée « Introspection d’une Base de Données Existante (Optionnel) »

Si vous vous connectez à une base de données existante avec des tables préexistantes, vous pouvez l’introspecter pour générer automatiquement vos fichiers de collection TypeScript :

pnpm rebase schema introspect

Cela analysera les tables, enums et relations de votre base de données et créera les fichiers de collection correspondants dans config/collections/.

Lorsque vous ouvrez http://localhost:5173, vous verrez l’écran de connexion. Le premier utilisateur à s’inscrire devient automatiquement un administrateur — c’est le flux d’amorçage.

  1. Cliquez sur S’inscrire
  2. Entrez votre adresse e-mail et votre mot de passe
  3. Vous êtes connecté — avec un accès administrateur complet

Ouvrez config/collections/ et créez un nouveau fichier :

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

Redémarrez les serveurs de développement et votre nouvelle collection Produits apparaîtra dans la navigation.

CommandeDescription
rebase schema generateGénérer le schéma Drizzle à partir de vos collections TypeScript
rebase schema introspectGénérer des collections TypeScript à partir d’une base de données existante
rebase db pushPousser les modifications de schéma directement dans la base de données (dev seulement)
rebase db generateGénérer les fichiers de migration SQL
rebase db migrateExécuter les migrations en attente