For developers

Extending

Local development

Run the full stack on lvh.me. Mock services for payments + AI + storage + fulfillment.

Prerequisites

  • Node 20+
  • pnpm 9.12.0
  • Redis (local or Upstash) — BullMQ broker
  • A Postgres database — Neon free tier is fine
  • .env.local at the repo root (cp .env.example .env.local)

First-time setup

pnpm install
pnpm --filter @orkestr/database exec prisma generate
pnpm --filter @orkestr/database exec prisma migrate deploy
pnpm --filter @orkestr/database exec tsx src/seed.ts
pnpm --filter @orkestr/database exec tsx src/enrich-demo.ts

Run the stack

# 1. Redis
redis-server --daemonize yes --port 6379

# 2. API (port 4000) — uses ts-node for NestJS DI compatibility
cd apps/api && PORT=4000 npx ts-node \
  --project tsconfig.dev.json --transpile-only src/main.ts

# 3. AI (port 4100)
cd apps/ai && PORT=4100 npx ts-node \
  --project ../api/tsconfig.dev.json --transpile-only src/main.ts

# 4. Worker
cd apps/worker && npx tsx src/main.ts

# 5. Web (port 3000)
cd apps/web && WEB_BASE_URL=http://lvh.me:3000 npx next dev -p 3000 -H 0.0.0.0

Test logins

RoleURLEmail / password
Platform adminlvh.me:3000/loginadmin@orkestr.dev / orkestr-dev
Provider (Acme)acme.lvh.me:3000/loginowner@acme.dev / orkestr-dev
Provider (Lumen)lumen.lvh.me:3000/loginowner@lumen.dev / orkestr-dev
Customeracme.lvh.me:3000/loginamelia.client@orkestr.dev / orkestr-dev
Mock services

Without real keys: Stripe → mock payment provider, Anthropic → mock LLM, GCS → /tmp/orkestr-uploads, Bookalimo / Flights → mock clients with canned data. The whole booking flow runs offline.