OPERATE YOUR OWN REVIEWER
Install the App.
Keep the keys.
The Cururu GitHub App runs on your infrastructure. GitHub delivers signed webhooks; Cururu verifies, queues and processes them without a hosted Cururu service.
01 / GITHUB APP SETUP
Create the installation.
Each operator creates their own GitHub App for their own Cururu deployment; there is no shared central App. Configure its webhook URL as https://your-hostname/v1/webhooks/github and set a unique webhook secret.
Metadata read is granted automatically. Add only the repositories where Cururu should operate.
02 / PRIVATE BASE CONFIG
Access follows your installation.
Install your App on both consumer and shared-config repositories. An all-repositories installation can read new bases in that organization without per-repository changes. Selective installations require an admin to add each repository. For a base in another organization, install your App there too; Cururu uses that installation's read token for the pinned config fetch.
Pin the base to a full commit SHA in the trusted consumer `.cururu.toml`.
[config]
base = 'acme/engineering-standards'
base_ref = '0123456789abcdef0123456789abcdef01234567'
base_path = 'configs/cururu/base.toml'03 / DEPLOY
Choose the storage you already trust.
Copy the environment template, place the GitHub App PEM key in the ignored `secrets/` directory, set the LLM and webhook secrets, then select a Compose file.
cp .env.example .env
# edit .env and place the private key at the configured file path
docker compose up -d --build
# or use SQLite with a persistent volume
docker compose --env-file .env -f compose.sqlite.yaml up -d --buildSQLite online backup: cururu backup-sqlite /data/cururu-backup.db. Litestream can replicate the mounted database file when configured as a sidecar.
04 / INTERACTIONS
Reviews and replies.
Cururu submits a formal advisory review and attempts to request its bot identity as a reviewer. GitHub may reject bot reviewer requests; the formal review still identifies Cururu. Write-authorized collaborators can run `/cururu review`, mention `@cururu`, or reply directly to a Cururu suggestion.
/cururu review
/cururu review --full
@cururu Why is this change needed?Webhook text is still untrusted.
Cururu verifies HMAC signatures before parsing or queueing, uses short-lived installation tokens, never checks out PR-head code, and treats diffs and comments as data. Put secrets in the deployment's secret manager, not `.cururu.toml`.
Full deployment and operations guide →