Skip to content

Local Setup

Tool Version
Node.js >= 22
pnpm 9 (corepack enable && corepack prepare pnpm@9 --activate)
Docker for local PostgreSQL + Redis
Terminal window
# 1. Install dependencies (workspace: apps/api, apps/web, packages/shared)
pnpm install
# 2. Start local infrastructure (PostgreSQL on 5433, Redis on 6380)
docker compose up -d
# 3. Configure environment
cp .env.example .env
# Fill in required values — see "Environment variables" below.
# 4. Generate the Prisma client, run migrations, seed demo data
pnpm db:generate
pnpm db:migrate
pnpm db:seed
# 5. Start API + Web in dev mode
pnpm dev
  • API: http://localhost:3001 (global prefix apihttp://localhost:3001/api/...)
  • Web: http://localhost:3000

.env.example documents every variable. The most important ones:

Variable Purpose
DATABASE_URL PostgreSQL connection string (dev: postgresql://…@localhost:5433/…)
REDIS_URL Redis connection string
JWT_ACCESS_SECRET / JWT_REFRESH_SECRET Token signing secrets
MISTRAL_API_KEY Mistral Vision API key (AI features; app runs without it but AI endpoints report unavailable)
MISTRAL_MODEL Vision model override (default: mistral-medium-latest)
Terminal window
pnpm dev # API + Web in parallel
pnpm dev:api # API only
pnpm dev:web # Web only
pnpm db:studio # Prisma Studio
pnpm db:seed # Re-seed demo data

The project is developed on several machines. A local Git server acts as the primary remote (origin); GitHub is a downstream mirror used for CI/CD. Always fetch from origin before starting work and push to origin when done — see Git & CI Workflow.