Skip to content

Configuration

Copy .env.example to .env, or run npm run setup, which creates .env when it is missing. Placeholder values are enough to boot the app. Wire real keys when you need payments, email, OAuth, or object storage.

Variable Purpose
DATABASE_URL SQLite (file:./prisma/dev.db) or PostgreSQL connection string
BETTER_AUTH_SECRET Auth secret; also encrypts plugin password settings at rest
STRIPE_PUBLIC_KEY / STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET Payments
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET Optional Google OAuth
STORAGE_ENDPOINT / STORAGE_REGION / STORAGE_BUCKET / STORAGE_ACCESS_KEY / STORAGE_SECRET_KEY / STORAGE_PUBLIC_URL S3-compatible object storage

DATABASE_PROVIDER is optional. When omitted, bermooda infers sqlite or postgresql from DATABASE_URL.

  1. Create a project in the Google Cloud Console.
  2. Create OAuth client credentials (Web application).
  3. Add authorized redirect URIs:
    • Development: http://localhost:3000/auth/callback/google
    • Production: https://your-domain/auth/callback/google
  4. Set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env.
  • PostgreSQL — production database, CI, and the single-shop model
  • Storage — S3-compatible media, MinIO locally, and upload APIs