Skip to content

Developer local setup

  • Go 1.25+
  • Node.js 22+
  • pnpm 10+
  • Docker (for PostgreSQL and Redis)
  • GitHub App (for webhook testing — see the Getting started guide)

Start the database and cache containers:

Terminal window
docker compose -f deploy/docker-compose.dev.yml up -d

Then start all services at once:

Terminal window
./dev.sh

dev.sh runs turbo run dev dev:worker dev:retention:cron, which starts the API server, background worker, retention cron, and the dashboard dev server in parallel.

Environment variables: Copy .env.example to .env and fill in the required values.

If you prefer to run apps separately instead of using dev.sh:

Terminal window
# API server (port 8080)
go run ./cmd/server
# Background worker
go run ./cmd/worker
# Dashboard dev server (port 5173)
cd apps/dashboard && pnpm dev

Migrations run automatically when the API server starts. There is no separate migration command to run. The migration files live in apps/api/internal/store/migrations/.

The dashboard dev server proxies /api and /auth requests to localhost:8080, so the API server must be running for the dashboard to function. No additional proxy configuration is needed.