Powered by NovaDocs

Setup

3 min readUpdated Aug 5, 2026

For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to 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:

bash
npm install

2. Environment variables

Copy the example env file and fill in the values:

bash
cp .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

  1. 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 %}

  1. Run Prisma migrations

    • Development (creates/updates migrations and applies them):

      bash
      npx prisma migrate dev
    • Production (only applies existing migrations):

      bash
      npx prisma migrate deploy
  2. Generate Prisma Client (usually done by migrate dev or the build script):

    bash
      npx prisma generate
  3. (Optional) Open Prisma Studio to inspect data:

    bash
    npx prisma studio

4. Build (production)

Before running in production or deploying:

bash
npm run build

This will:

  • Run prisma generate
  • Compile TypeScript (tsc) to dist/
  • 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):

    bash
    npm run dev

    The 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):

    bash
    npm start

    This 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 admin so 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.

Was this helpful?

Setup · NovaDocs · NovaDocs