Aller au contenu

Introduction

Rebase est le backend open source pour PostgreSQL, avec un panneau d’administration pour votre équipe, conçu avec React et TypeScript. Il vous offre tout ce dont vous avez besoin pour créer une application prête pour la production au-dessus de PostgreSQL :

  • Schema as Code — Définissez vos modèles de données sous forme de collections TypeScript. Rebase génère des tables PostgreSQL, une interface CRUD complète, des points de terminaison d’API REST et un SDK typé à partir d’une source unique de vérité.
  • Panneau d’administration instantané — Un panneau moderne et rapide basé sur React avec tableaux de type feuille de calcul, listes, formulaires, tableaux Kanban, édition en ligne et synchronisation en temps réel.
  • Backend intégré — Authentification (mots de passe, liens magiques, codes à usage unique, MFA, clés API et douze fournisseurs OAuth/OIDC), stockage de fichiers (local ou S3), Row Level Security, historique des entités et temps réel via WebSocket — tout est intégré nativement.
  • Radicalement extensible — Si vous pouvez le construire en React, vous pouvez l’ajouter à Rebase. Champs personnalisés, vues personnalisées, plugins et accès complet aux hooks internes.

Rebase, c’est un backend et un panneau d’administration qui partagent le même serveur. Commencez par celui pour lequel vous êtes venu :

Je veux… Commencer ici Ce que vous obtenez
Un backend et un panneau d’administration Quickstart Des collections en TypeScript, une interface CRUD générée, une API REST, l’authentification, le stockage et le temps réel
Uniquement l’API, sur ma propre base de données Backend only Une API REST headless et un SDK sur votre base PostgreSQL existante — sans panneau d’administration, sans fichiers de collection

Aucune de ces options n’est définitive : un projet headless peut intégrer un panneau d’administration en ajoutant simplement des fichiers de collection, et un projet complet peut servir des tables pour lesquelles il n’a pas de collection.

┌──────────────────────────────────────────────────────┐
│ 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 génère un fichier .env prêt à l’emploi — aucune modification requise. Ensuite :

pnpm install
pnpm run dev

C’est tout ce qu’il faut pour la première exécution. Il n’y a aucune base de données à installer ni d’étape de schéma : en l’absence de DATABASE_URL, rebase dev démarre un PostgreSQL géré (PGlite) dans le répertoire du projet, génère le schéma à partir de vos collections et crée les tables au démarrage.

Lisez les URL affichées dans la sortie. rebase dev choisit un port libre par projet plutôt qu’un port fixe, ils diffèrent donc selon les projets et les machines. Le premier compte que vous enregistrez devient l’administrateur — sur votre machine. Un déploiement en production définit plutôt son administrateur via REBASE_ADMIN_EMAIL et REBASE_ADMIN_PASSWORD (voir Configuration).

Pour utiliser plutôt votre propre instance Postgres, décommentez DATABASE_URL dans .env et relancez pnpm run dev.

→ Suivez le guide Quickstart complet pour un pas-à-pas détaillé, incluant la façon de connecter votre propre base de données.

Fonctionnalité Description
Vues tableur Tableau virtualisé et rapide avec édition en ligne, filtrage, tri et recherche textuelle
Vue en liste Vue verticale épurée et responsive pour les collections
Tableau Kanban Vue en tableau avec glisser-déposer, groupée par n’importe quelle propriété d’énumération
Relations One-to-one, one-to-many, many-to-many avec tables de jonction et jointures multi-niveaux
Row Level Security Politiques RLS à la Supabase définies directement dans la configuration de votre collection
Authentification JWT + refresh tokens, douze fournisseurs OAuth/OIDC, liens magiques, codes à usage unique, TOTP MFA, clés API avec portée restreinte, contrôle d’accès basé sur les rôles
Stockage de fichiers Système de fichiers local ou compatible S3 avec champs d’upload et explorateur
Synchronisation temps réel Mises à jour en direct via WebSocket sur l’ensemble des clients connectés
Historique des entités Journal d’audit complet pour chaque création, modification et suppression
API REST Endpoints CRUD générés automatiquement pour chaque collection
Import / Export de données Import CSV, JSON et Excel avec mappage de champs ; export CSV/JSON
Éditeur de collection Éditeur visuel de schéma qui génère du TypeScript via manipulation d’AST
SDK typé SDK JavaScript typé pour vos applications frontend
Système de plugins Étendez chaque élément de l’interface — barre d’outils, formulaires, champs, page d’accueil
Enrichissement de données par IA Autocomplétion propulsée par LLM pour les champs textuels
Tâches Cron Tâches de fond planifiées avec surveillance, journalisation et tableau de bord Studio
Fonctions personnalisées Routes Hono basées sur les fichiers, automatiquement montées avec middleware d’authentification et accès DB
Service d’e-mails SMTP intégré pour réinitialisation de mot de passe, vérification et e-mails transactionnels
Branching de base de données Copies instantanées et isolées de votre base de données pour le dev, le staging ou les tests
Webhooks Notifications sortantes signées HMAC sur les événements INSERT, UPDATE, DELETE
Canaux de diffusion Canaux WebSocket pour la messagerie en temps réel entre clients connectés
Suivi de présence Suivi des utilisateurs en ligne et synchronisation de l’état partagé entre les participants
  • Quickstart — Soyez opérationnel en 2 minutes
  • Backend only — L’API headless sur une base de données existante
  • Structure du projet — Comprenez le code généré, et les cinq concepts clés supposés connus dans la suite de cette documentation
  • Collections — Définissez votre schéma de données
  • Backend — Configurez l’authentification, le stockage et l’API
  • Architecture — Comprenez comment l’ensemble s’articule