orchestrator in Compose and run backend from source for faster changes.
Hybrid workflow (recommended)
make -C ... from repo root, or run make all-up from self-hosting/docker-compose.
If UI stays in Docker, point UI to host backend:
ORCHESTRATOR_BACKEND_URL=http://host.docker.internal:3000
ORCHESTRATOR_BACKEND_URL=http://localhost:3000 in ui/.env.local.
Quick start
- Create
backend/.envwith the essentials (adjust DB URL/ports):Optional but useful:GITHUB_APP_ID,GITHUB_APP_PEM,GITHUB_APP_WEBHOOK_SECRETif you already have an app.GITHUB_ORGif you want/github/setupto target an org.
- Start the service (from
backend/):Default port:3000.
Sync organization and user for UI flows
- The UI calls
/api/*and/github/*withAuthorization: Bearer $DIGGER_INTERNAL_SECRETandDIGGER_ORG_ID/DIGGER_USER_IDheaders. - You must upsert the WorkOS org + user the UI is authenticated as:
GitHub app integration
- For a quick install link, set
ORCHESTRATOR_GITHUB_APP_URLin UI config to your app install URL (https://github.com/apps/<app>/installations/new). - To create a new app via the backend, open
http://localhost:3000/github/setup(requiresPUBLIC_BASE_URLandINTERNAL_BASE_URLconfigured). - When using ngrok, callbacks should target the UI tunnel domain, not direct backend localhost URLs.
Troubleshooting
- 404 on /api/repos: ensure
DIGGER_ENABLE_API_ENDPOINTS=trueand the org/user above are created. - 401/403: verify
Authorizationheader usesDIGGER_INTERNAL_SECRET. - GitHub connect 404: set
ORCHESTRATOR_GITHUB_APP_URLas described.

