# 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 17–19 digit snowflakes. Channel and role names match # guild entities by display name (case-insensitive). [bot] name = "" prefix = "" status = "" activity_type = "watching" # playing, streaming, listening, watching, competing [bot.owners] ids = [ "", "", "", "" ] [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 = "" 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 = [ "", "", "", "", "" ] [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.