Pular para o conteúdo

Ambiente e Configuração

Toda a configuração é feita através de variáveis de ambiente no seu arquivo .env na raiz do projeto.

Importante: Rebase utiliza Zod para validar variáveis de ambiente na inicialização em src/env.ts. Se alguma variável obrigatória estiver faltando ou formatada incorretamente (como URLs ou portas), o servidor não conseguirá iniciar e fornecerá uma mensagem de erro clara.

VariávelDescriçãoExemplo
DATABASE_URLString de conexão PostgreSQLpostgresql://user:pass@localhost:5432/mydb
JWT_SECRETChave secreta para assinar tokens JWT. Use uma string aleatória forte (mínimo 32 caracteres).a1b2c3d4e5...
VariávelDescriçãoPadrão
VITE_API_URLURL da API de backend. Usada pelo SDK do cliente.http://localhost:3001
VITE_GOOGLE_CLIENT_IDID do cliente Google OAuth. Habilita “Fazer login com o Google”.
VariávelDescriçãoPadrão
PORTPorta para o servidor HTTP de backend3001
LOG_LEVELNível de verbosidade de log: error, warn, info, debuginfo
NODE_ENVAmbiente: development ou productiondevelopment
VariávelDescriçãoPadrão
JWT_SECRETSegredo para assinatura JWT (obrigatório se a autenticação estiver habilitada)
JWT_ACCESS_EXPIRES_INTempo de vida do token de acesso1h
JWT_REFRESH_EXPIRES_INTempo de vida do token de atualização30d
ALLOW_REGISTRATIONPermitir que novos usuários se registrem (true/false). O primeiro usuário sempre pode se registrar.true
GOOGLE_CLIENT_IDID do cliente Google OAuth (validação de backend)
VariávelDescriçãoPadrão
STORAGE_TYPEBackend de armazenamento: local ou s3local
STORAGE_PATHCaminho base para armazenamento local./uploads
S3_BUCKETNome do bucket S3 (quando STORAGE_TYPE=s3)
S3_REGIONRegião AWS
S3_ACCESS_KEY_IDChave de acesso AWS
S3_SECRET_ACCESS_KEYChave secreta AWS
S3_ENDPOINTEndpoint S3 personalizado (para MinIO, Cloudflare R2, etc.)
VariávelDescrição
SMTP_HOSTHost do servidor SMTP
SMTP_PORTPorta do servidor SMTP
SMTP_SECUREEnable secure connection (true/false)
SMTP_USERNome de usuário SMTP
SMTP_PASSSenha SMTP
EMAIL_FROMEndereço do remetente para e-mails do sistema

O RebaseBackendConfig passado para initializeRebaseBackend() fornece controle programático:

import { initializeRebaseBackend } from "@rebasepro/server-core";
import { createPostgresAdapter } from "@rebasepro/server-postgresql";
import { env } from "./env";
await initializeRebaseBackend({
app,
server,
collectionsDir: "./config/collections",
basePath: "/api", // Base path for all API routes (default: "/api")
database: createPostgresAdapter({
connection: db,
schema: { tables, enums, relations }
}),
auth: { // Authentication config
jwtSecret: env.JWT_SECRET,
accessExpiresIn: env.JWT_ACCESS_EXPIRES_IN,
refreshExpiresIn: env.JWT_REFRESH_EXPIRES_IN,
requireAuth: true, // Require auth for data API (default: true)
allowRegistration: env.ALLOW_REGISTRATION,
google: env.GOOGLE_CLIENT_ID
? {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET
}
: undefined,
serviceKey: env.REBASE_SERVICE_KEY
},
storage: env.STORAGE_TYPE === "s3"
? {
type: "s3",
bucket: env.S3_BUCKET!,
region: env.S3_REGION,
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
endpoint: env.S3_ENDPOINT
}
: {
type: "local",
basePath: env.STORAGE_PATH || "./uploads"
},
history: true, // Enable entity change history
enableSwagger: true, // Enable OpenAPI docs at /api/data/docs
logging: {
level: "info"
}
});