Skip to content

Getting started

This content is for v0.2.0. Switch to the latest version for up-to-date documentation.

Follow the GitHub App setup section below (2 minutes). You’ll get an App ID, private key, webhook secret, and OAuth client ID/secret.

Terminal window
git clone https://github.com/devops-thiago/ThrillhouseBot.git && cd ThrillhouseBot
cp .env.example .env

Edit .env with the credentials from step 1:

VariableValue
GITHUB_APP_IDFrom GitHub App settings → About
GITHUB_PRIVATE_KEYDownloaded when you generated a private key
GITHUB_WEBHOOK_SECRETThe webhook secret you set
GITHUB_CLIENT_IDFrom app settings → Identifying and authorizing users
GITHUB_CLIENT_SECRETFrom app settings → Identifying and authorizing users
AI_API_KEYYour AI provider’s API key
Terminal window
docker compose up -d

The bot is running on http://localhost:8080. Point your reverse proxy at it and you’re done.

Create a GitHub App before starting the bot; you’ll need its credentials for .env.

  1. Edit manifest.json in the repo root and replace every <your-host> with your public hostname (no trailing slash). For local dev with Smee.io, use your Smee channel URL host.

  2. Serve the repo root locally:

    Terminal window
    java -m jdk.httpserver -p 8081
  3. Open /ThrillhouseBot/install.html and click Create ThrillhouseBot GitHub App. GitHub creates the app from your manifest.

  4. On the confirmation page, note the App ID, generate a private key, and create a webhook secret. Copy the Client ID and Client secret from the app’s Identifying and authorizing users settings (needed for dashboard login).

  5. Install the app on your account or organization, then copy the values into .env.

    Alternatively, generate .env automatically from the manifest conversion response:

    Terminal window
    gh api --method POST /app-manifests/<code>/conversions \
    | java scripts/GenEnv.java --host <your-host>

Once the bot is running, http://<your-host>:8080/install.html auto-detects the URL and builds the manifest dynamically, with no file editing or local server needed.

SettingValue
Webhook URLhttps://<your-host>/api/webhook
Webhook SecretRandom string
Repository PermissionsPull Requests: R/W, Checks: R/W, Contents: Read, Issues: R/W, Actions: Read
Subscribe to EventsPull Request, Issue comment, Pull request review comment
Identifying & authorizing usersEnabled (for dashboard login)
Callback URLhttps://<your-host>/api/auth/callback