-
Notifications
You must be signed in to change notification settings - Fork 0
Environment Variables
Jason Tucker edited this page May 5, 2026
·
2 revisions
All vars are validated with Zod in src/config/env.ts. The bot exits immediately if a required var is missing.
| Variable | Required | Description |
|---|---|---|
DISCORD_BOT_TOKEN |
✅ | Bot token from Developer Portal |
DISCORD_CLIENT_ID |
✅ | Application (client) ID |
DATABASE_URL |
✅ | PostgreSQL connection string. In Docker, this is set automatically by compose using POSTGRES_PASSWORD. |
NODE_ENV |
— |
development or production (default: development) |
| Variable | Required | Description |
|---|---|---|
GUILD_ID |
✅ | The single Discord server this bot serves |
| Variable | Required | Description |
|---|---|---|
SUDO_ROLE_IDS |
— | Comma-separated role IDs with full bot-admin powers |
SUDO_USER_IDS |
— | Comma-separated user IDs with full bot-admin powers |
BOT_OWNER_ID |
— | Discord user ID — receives DMs on startup and unhandled errors |
| Variable | Required | Description |
|---|---|---|
AUTO_VOICE_CATEGORY_ID |
✅ | Category ID where hubs and auto channels live |
HUB_CHANNEL_IDS |
✅ | Comma-separated voice channel IDs that are hubs |
VOICE_CLEANUP_DELAY_MS |
— | ms before empty channel cleanup (default: 30000) |
| Variable | Required | Description |
|---|---|---|
LOG_CHANNEL_ID |
— | Bot sends structured logs here |
ADMIN_CHANNEL_ID |
— | Sudo-only admin channel |
STAFF_APPROVAL_THREAD_ID |
— | Thread where staff requests are posted |
STAFF_APPROVAL_PING_USER_ID |
— | User pinged on each staff request |
| Variable | Description |
|---|---|
BIRTHDAY_CHANNEL_ID |
Channel for birthday pings |
CLIPS_CHANNEL_ID |
Auto-thread on every message (best moments) |
FOOD_CHANNEL_ID |
Auto-thread on every message |
| Variable | Description |
|---|---|
POSTGRES_PASSWORD |
Postgres password — must be hex/alphanumeric only (no #, *, ?) |
BOT_IMAGE |
GHCR image URL for docker compose pull. Set by CI. |
| Variable | Description |
|---|---|
UPTIME_KUMA_PUSH_URL |
Push monitor URL — bot pings it every 60s |