ACME_EMAIL=admin@openbot.run
SIGNAL_DOMAIN=signal.openbot.run
TURN_DOMAIN=turn.openbot.run
TURN_PUBLIC_IP=203.0.113.10
REMOTE_SIGNAL_BIND_ADDRESS=0.0.0.0
REMOTE_SIGNAL_PUBLIC_PORT=443
REMOTE_SIGNAL_PORT=8443
REMOTE_TLS_DISABLED=false
CLOUDFLARE_DNS_API_TOKEN=
ACME_CERTIFICATE_GROUP_ID=2000
REMOTE_TICKET_JWKS_URL=https://api.openbot.run/.well-known/jwks.json
REMOTE_CONTROL_PLANE_URL=https://api.openbot.run
REMOTE_SESSION_SECRET=
REMOTE_AUTH_WEBHOOK_SECRET=
REMOTE_METRICS_TOKEN=
REMOTE_MAX_CONNECTIONS_PER_USER=32
REMOTE_MAX_CONNECTIONS_PER_IP=32
REMOTE_MAX_MESSAGES_PER_MINUTE=600
REMOTE_TRUST_PROXY=false
TURN_SHARED_SECRET=
# The signing secret of each OpenBot Slack app, comma-separated: A0C5H5C95NH:<secret>,A0C5G5XGS83:<secret>.
SLACK_SIGNING_SECRET=
# The webhook secret of the OpenBot GitHub App, at least 32 bytes. Without it, the GitHub route answers 503.
GITHUB_WEBHOOK_SECRET=
# The OpenBot Discord bot: its token and its application ID. Without both, Discord is off.
DISCORD_BOT_TOKEN=
DISCORD_APPLICATION_ID=
# `false` stops Signal asking for the Message Content intent. Signal asks for it by default.
DISCORD_MESSAGE_CONTENT=
# The token of each OpenBot Telegram bot, comma-separated: <bot ID>:<secret>,<bot ID>:<secret>.
TELEGRAM_BOT_TOKENS=
# At least 32 bytes. Signal derives the webhook secret of each bot from it. Required with bot tokens.
TELEGRAM_WEBHOOK_SECRET=
# Optional. With it, Signal sets the webhook of each bot to <origin>/v1/telegram/updates/<bot ID> when it starts.
TELEGRAM_WEBHOOK_ORIGIN=https://signal.openbot.run