Skip to main content

Local Development (optional)

Most sysadmins do not need this section — the production install above does not require running the codebase locally. Use this guide only if you intend to fork CourseMaker or test changes before deploying.

Prerequisites

  • Bun 1.2+ (curl -fsSL https://bun.sh/install | bash)
  • Docker (for the dev Postgres)

Steps

git clone https://github.com/<your-org>/coursemaker.git
cd coursemaker
cp .env.example .env.local

Fill BETTER_AUTH_SECRET and ENCRYPTION_KEY with openssl rand -base64 32.

Start the dev Postgres on port 5455:

docker compose -f docker-compose.dev.yml up -d

Install deps, run migrations, start the dev server:

bun install
bun run db:migrate
bun run dev

Open http://localhost:3000. The first account you register becomes the admin.

Useful scripts

bun run db:generate # Drizzle: regenerate migration SQL from schema
bun run db:push # Drizzle: push schema directly (dev only)
bun run db:studio # Drizzle Studio at https://local.drizzle.studio
bun run lint # ESLint
bun run build # Production build (Next.js standalone)