Salta ai contenuti

Avvio Rapido

pnpm dlx @rebasepro/cli init my-app

Questo crea la struttura di un progetto con tre pacchetti:

CartellaDescrizione
frontend/SPA React — Vite + TypeScript con l’interfaccia utente di amministrazione Rebase
backend/Server Node.js — Hono, PostgreSQL tramite Drizzle ORM, WebSocket
config/Definizioni di collezioni TypeScript condivise da entrambi i lati
  • Node.js 18+
  • PostgreSQL — installazione locale, Docker o qualsiasi database gestito (Neon, Supabase, ecc.)
  • pnpm (consigliato) o npm

Dopo aver creato la struttura, modifica il file .env nella root del progetto:

# Stringa di connessione PostgreSQL
DATABASE_URL=postgresql://username:password@localhost:5432/your_database
# Segreto JWT per l'autenticazione (genera una stringa casuale robusta)
JWT_SECRET=change-me-to-a-random-secret
# URL Frontend per CORS
VITE_API_URL=http://localhost:3001
# Opzionale: ID client Google OAuth
# VITE_GOOGLE_CLIENT_ID=your-google-client-id
pnpm dev

Questo avvia:

  • Backend all’indirizzo http://localhost:3001 — API REST, autenticazione, storage, WebSocket
  • Frontend all’indirizzo http://localhost:5173 — Pannello di amministrazione Rebase
  • Hot reload per entrambi — le modifiche hanno effetto istantaneamente

Puoi anche avviarle individualmente:

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

Introspezione di un Database Esistente (Opzionale)

Sezione intitolata “Introspezione di un Database Esistente (Opzionale)”

Se ti stai connettendo a un database esistente con tabelle già presenti, puoi eseguirne l’introspezione per generare automaticamente i tuoi file di collezione TypeScript:

pnpm rebase schema introspect

Questo analizzerà le tabelle, gli enum e le relazioni del tuo database e scriverà i file di collezione corrispondenti in config/collections/.

Quando apri http://localhost:5173, vedrai la schermata di accesso. Il primo utente a registrarsi diventa automaticamente un amministratore — questo è il flusso di bootstrap.

  1. Clicca su Registrati
  2. Inserisci la tua email e password
  3. Sei dentro — con accesso amministrativo completo

Apri config/collections/ e crea un nuovo file:

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 # Genera lo schema Drizzle dalle tue collezioni
rebase db push # Invia lo schema al tuo database

Riavvia i server di sviluppo e la tua nuova collezione Prodotti apparirà nella navigazione.

ComandoDescrizione
rebase schema generateGenera lo schema Drizzle dalle tue collezioni TypeScript
rebase schema introspectGenera collezioni TypeScript da un database esistente
rebase db pushInvia le modifiche allo schema direttamente al database (solo dev)
rebase db generateGenera i file di migrazione SQL
rebase db migrateEsegui le migrazioni in sospeso