Documentation

Practical product docs for setting up, mapping, editing, and operating BaseBuddy.

Docs/Deployment

Deployment

Run BaseBuddy in production with durable app data, restricted database roles, and verified TLS.

BaseBuddy production deployment needs one durable app-data backend. The default is:

textbasebuddy-data/basebuddy.config.json

Mount or preserve basebuddy-data/ so setup survives restarts and deploys.

For hosts that restart often or run multiple app instances, use a Supabase/Postgres app-data backend instead:

shBASEBUDDY_APP_STATE_BACKEND=supabase-split-project
BASEBUDDY_APP_STATE_DATABASE_URL=postgresql://...

With the default basebuddy-data backend, editable deployments on Vercel, Netlify, or similar immutable serverless hosts are not supported because project settings, mappings, permissions, sidebar layout, local users, sessions, and invites are written to app data on the running server.

Use App data storage options before choosing the backend for your host.

Checklist

  1. Build with Node.js 22 and pnpm.
  2. Keep app data out of git and public logs.
  3. Run onboarding or CLI setup once.
  4. Back up the selected app-data backend.
  5. Run pnpm setup:check and pnpm basebuddy doctor.
  6. Use a restricted database role for BASEBUDDY_CONTENT_DATABASE_URL.
  7. Use TLS verification for hosted Supabase/Postgres.
  8. Sign in, open /projects, and verify one mapped content read.

Deploy

shpnpm install --frozen-lockfile
pnpm build
pnpm start

Use HTTPS for production. Configure your platform so the process can read and write the selected app-data backend.

Content Database

The content database can be Supabase or any supported Postgres database. BaseBuddy setup does not change the content schema. The saved mapping decides which tables and fields the editor can use.

For production, avoid the broad postgres owner role. BaseBuddy checks Postgres update privileges and shows mapped fields as read-only when the current role cannot update their columns.