For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending
.mdto page URLs; this page is available as Markdown.
Setup
Requirements
- Node.js 18+ (or 20+ recommended)
- PostgreSQL database (local, Docker, or hosted e.g. Vercel Postgres, Neon, Supabase)
- npm (or yarn/pnpm)
Optional for full functionality:
- Stripe account and API key (for payment links)
- Discord application (for Discord OAuth)
- SMTP (e.g. Zoho) for password reset emails and sending alerts
- Vercel Blob (only if you deploy on Vercel and want banner uploads to work, because the server filesystem is read-only there)
1. Download and install
Download the zip from BBB and install dependencies:
bashnpm install
2. Environment variables
Copy the example env file and fill in the values:
bashcp .env.example .env
Edit .env. Minimum for local run:
- DATABASE_URL – PostgreSQL connection string, e.g.
postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=public
For local Docker:
postgresql://postgres:yourpassword@localhost:5432/dashboard
Optional (see Environment Variables for full list):
- APP_BASE_URL – Base URL of the app (e.g.
http://localhost:3002). Used for password reset links and Discord redirect. - STRIPE_SECRET_KEY – For creating payment links in the Admin (Payments) section.
- SMTP_* – For sending password reset emails; if not set, reset link is printed in the server console.
- Discord – For “Login with Discord” (client id, secret, redirect URI).
- BLOB_READ_WRITE_TOKEN – Only needed on Vercel if you want user banner uploads (Vercel Blob).
3. Database
- Create a PostgreSQL database (locally, Docker, or a cloud provider).
{% hint style="info" %} It is highly recommended to host your database with a cloud provider. A locally hosted database is typically suitable for testing purposes only. Please consider purchasing the Setup Add-on, which includes website hosting, database hosting, and environment configuration. {% endhint %}
-
Run Prisma migrations
-
Development (creates/updates migrations and applies them):
bashnpx prisma migrate dev -
Production (only applies existing migrations):
bashnpx prisma migrate deploy
-
-
Generate Prisma Client (usually done by
migrate devor the build script):bashnpx prisma generate -
(Optional) Open Prisma Studio to inspect data:
bashnpx prisma studio
4. Build (production)
Before running in production or deploying:
bashnpm run build
This will:
- Run
prisma generate - Compile TypeScript (
tsc) todist/ - Copy images (if your script does that)
- Build Tailwind CSS into
public/tailwind.css
5. Run locally
-
Development (watch mode, no need to run build first):
bashnpm run devThe server usually starts on a port defined in the code (e.g. 3002). Open
http://localhost:3002(or the port shown) and go to/login.html. -
Production-like (after
npm run build):bashnpm startThis runs
node dist/index.js.
6. First admin user
- If there is no user in the database, register via the login page (email + username + password).
- In the database (e.g. via Prisma Studio), set that user’s role to
adminso they can access all sections and settings. - Alternatively, implement or run a seed script that creates an admin user (if you add one to the project).
After that, log in as admin and use Admin → Users (or the relevant page) to create or edit other users, assign roles, permissions, boards, and commissions.
