Quickstart
A minimal self-host boot path for maintainers: start the service, verify readiness, and keep the first rollout safe.
1. Copy the sample env
The sample env contains placeholders only. Keep your real .env out of git and prefer mounted secret files for multiline values like the GitHub App private key.
cp .env.example .env
# edit .envbash2. Start conservative
Begin with a small allowlist, unified comments, safety, and grounding. Leave AI, RAG, and REES off until webhook delivery and deterministic review are working.
SELFHOST_DEPLOYMENT_MODE=dry-run
GITTENSORY_REVIEW_REPOS=owner/repo
GITTENSORY_REVIEW_UNIFIED_COMMENT=true
GITTENSORY_REVIEW_SAFETY=true
GITTENSORY_REVIEW_GROUNDING=true
GITTENSORY_REVIEW_RAG=false
GITTENSORY_REVIEW_ENRICHMENT=falsedry-run computes reviews but suppresses writes. Switch to live only after webhook delivery, logs, and review output match expectations.3. Boot the stack
docker compose up -d --build
curl http://localhost:8787/health
curl http://localhost:8787/readybash- /health
- Liveness. It confirms the HTTP process is up.
- /ready
- Readiness. It returns 200 only after database access and migrations are healthy.
- /metrics
- Prometheus metrics for queue, jobs, HTTP traffic, uptime, and AI usage.
4. Install or connect the GitHub App
Point your App webhook to https://your-host.example/v1/github/webhook, set the same webhook secret in GITHUB_WEBHOOK_SECRET, install the App on one test repo, and open a small PR. The direct App and Orb modes are covered in GitHub App and Orb.
5. Watch the first review
Look for these logs during boot and the first webhook:
selfhost_listening
selfhost_migrations_applied
selfhost_ai_provider # only when AI_PROVIDER is set
selfhost_job_dead # investigate immediately if present
review_context_fetch_failed # REES/RAG/grounding context failureAfter the deterministic path is stable, continue with Configuration and then layer in AI, REES, or RAG deliberately.