Files
EllyDiscordBot/config.example.toml
2026-05-28 23:46:40 +00:00

119 lines
3.0 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Elly Discord Bot — Configuration
# ================================
#
# Copy this file to `config.toml` and fill in real values. The file is
# validated against the shared Zod schema (`@elly/shared/src/config/schema.ts`)
# at boot — missing or malformed values will abort the process before any
# side effects occur.
#
# Discord IDs must be 1719 digit snowflakes. Channel and role names match
# guild entities by display name (case-insensitive).
[bot]
name = "<your bot name>"
prefix = "<your prefix>"
status = "<your status>"
activity_type = "watching" # playing, streaming, listening, watching, competing
[bot.owners]
ids = [
"<your owner id>",
"<your owner id>",
"<your owner id>",
"<your owner id>"
]
[database]
# Path to the unified SQLite database owned by @elly/core.
path = "./data/elly.sqlite"
[kv]
# Path to the on-disk Deno.Kv store. Used for cooldowns, interaction state,
# and PikaNetwork response caching. Replaces all in-memory ad-hoc caches.
path = "./data/kv"
[ipc]
# Local HTTP IPC between @elly/bot and @elly/core. The bot opens connections
# to this host:port; the core binds and serves on it. The shared secret
# lives in .env (IPC_TOKEN) and never in this file.
host = "127.0.0.1"
port = 8787
request_timeout_ms = 10000
[api]
pika_cache_ttl = 3600000 # 1 hour in ms
pika_request_timeout = 10000 # 10 seconds
[guild]
id = "<your guild id>"
name = "<your guild name>"
[channels]
applications = "applications"
application_logs = "reviewed-applications"
suggestions = "suggestions"
suggestion_logs = "reviewed-suggestions"
guild_updates = "guild-updates"
discord_changelog = "discord-changelog"
inactivity = "inactivity-notices"
development_logs = "development-logs"
donations = "donations"
reminders = "reminders"
[roles]
admin = "Admin"
leader = "Leader"
officer = "Officer"
developer = "Developer"
guild_member = "Guild Member"
champion = "Champion"
away = "Away"
applications_blacklisted = "Applications blacklisted"
suggestions_blacklisted = "Suggestions Blacklisted"
[roles.manageable]
ids = [
"<your role id>",
"<your role id>",
"<your role id>",
"<your role id>",
"<your role id>"
]
[features]
applications = true
suggestions = true
statistics = true
family = true
qotd = true
reminders = true
staff_simulator = true
channel_filtering = true
auto_moderation = false
welcome_system = false
level_system = false
[limits]
champion_max_days = 366
away_max_days = 355
purge_max_messages = 100
reminder_max_duration_days = 365
[colors]
primary = 0x5865F2
success = 0x57F287
warning = 0xFEE75C
error = 0xED4245
info = 0x5865F2
[logging]
# Minimum level: debug | info | warn | error | fatal
level = "info"
# Console output format: "console" (ANSI-colored, dev) or "json" (structured).
# In production (NODE_ENV=production) JSON is forced regardless of this value.
format = "console"
# Optional: also write structured JSON lines to a rotating file.
file = "./logs/elly.log"
file_max_bytes = 10485760 # 10 MiB — rotates when current file exceeds this.
file_max_backups = 5 # Number of `.1` … `.N` archives to keep.