Skip to content

Configuration

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

Configuration is read from environment variables (see .env.example). The AI variables are the ones you will change per provider:

VariablePurposeDefault
AI_API_KEYAPI key for the AI provider(required)
AI_BASE_URLOpenAI-compatible base URLhttps://api.deepseek.com/v1
AI_MODELChat model namedeepseek-chat
AI_TIMEOUTPer-request timeout300s
GITHUB_APP_IDGitHub App ID(required)
GITHUB_PRIVATE_KEYGitHub App private key (PEM)(required)
GITHUB_WEBHOOK_SECRETWebhook HMAC secret(required)
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRETOAuth credentials for dashboard login(required for dashboard)
DASHBOARD_URLPublic dashboard URL (OAuth callback base)http://localhost:8080
DATASOURCE_DB_KINDh2 or postgresqlh2 (dev), postgresql (%prod)
HTTP_CONNECT_TIMEOUTOutbound HTTP connect timeout (GitHub API, OAuth)10s
HTTP_REQUEST_TIMEOUTOutbound HTTP request timeout (GitHub API, OAuth)10s
WEBSOCKET_KEEPALIVE_MSDashboard WebSocket keepalive interval in ms; 0 or negative disables it (and stale replay-buffer eviction)25000

Cost tracking uses per-model pricing keyed by the model name, for example:

thrillhousebot.ai.pricing.deepseek-chat.input-per-1k=0.00014
thrillhousebot.ai.pricing.deepseek-chat.output-per-1k=0.00028

If you switch to a different AI_MODEL, add a matching thrillhousebot.ai.pricing.<model>.* pair so the dashboard can compute cost.