Local setup
Constellation is a Turborepo monorepo using npm workspaces. Node 20+ required.
Install
git clone https://github.com/B2B-Online/constellation.git
cd constellation
npm install
Start the dev services
The apps need a local PostgreSQL (shared by all modules) and MinIO (for storage).
npm run dev:services # starts PostgreSQL + MinIO in Docker
npm run db:migrate # applies all module migrations
Run an app
npm run dev:dir # Directory on :3001
npm run dev:pt # Project Tracker on :3002
# or
npx turbo dev --filter=@constellation/catalog
Full CI pipeline locally
Before every push:
npx prettier --check "**/*.{ts,tsx,js,jsx,json,md}"
npx turbo run lint typecheck build test
npm run check:routes
See the root CLAUDE.md for the full checklist.
Per-OS notes
The setup above works on every supported OS — these sections only call out the gotchas that vary.
macOS
Required tooling: node (≥ 20, install via nvm or Homebrew), docker (Docker Desktop or OrbStack), git. Recommended: psql from Homebrew (brew install postgresql@16) — set PSQL_PATH=/usr/local/bin/psql (or /opt/homebrew/bin/psql on Apple Silicon) in your .env.local so module migrations can find it.
If you use OrbStack instead of Docker Desktop, no special configuration is needed — npm run dev:services works against either.
Linux
Required tooling: node (≥ 20), docker + docker compose plugin, git. The dev:services script binds default ports — make sure ports 5432 (Postgres) and 9000 / 9001 (MinIO) are free. If your distro packages psql separately (apt install postgresql-client), no env-var override is needed; the binary is on the default PATH.
Windows / WSL2
The supported workflow is WSL2 with an Ubuntu (or similar) distro, not native Windows + PowerShell. Inside the WSL2 distro the Linux instructions above apply directly. Reasons:
- Module migrations call
psqland rely on POSIX tooling. PowerShell paths break the migration scripts in subtle ways. - Docker Desktop's WSL2 integration gives you
dockeranddocker composefrom inside the distro out of the box. - The repo has been exercised against WSL2 + Ubuntu 22.04+; native Windows is not currently in CI.
If you need to work directly on Windows for some reason, expect to debug shell-script differences yourself — patches welcome but support is best-effort.
Troubleshooting
psqlnot found — on macOS setPSQL_PATH=/usr/local/bin/psql(or/opt/homebrew/bin/psqlon Apple Silicon) in your.env.local.- Prisma client out of date — run
npx turbo db:generate. - Port already in use — the dev:services Docker compose binds default ports; stop conflicting processes or edit
docker-compose.dev.yml.