Configuration

The WeakAuras Discord Bot uses YAML configuration files for settings. The main configuration file is settings/token.yml.

Configuration File Structure

discord:
  tokens:
    dev: "your_development_token"
    prod: "your_production_token"

bot:
  permissions:
    admin_roles: ["admin", "moderator"]
    admin_permissions: ["administrator", "manage_guild"]
  brand_color: 0x9F4AF3
  logo_path: "assets/weakauras_logo.png"

storage:
  data_directory: "server_data"

Configuration Sections

Discord Settings

discord.tokens

Dictionary of Discord bot tokens for different environments.

  • dev: Token for development environment

  • prod: Token for production environment

Bot Settings

bot.permissions

Permission configuration for administrative commands.

bot.permissions.admin_roles

List of role names that grant administrative access. Case-insensitive matching.

Default: ["admin"]

bot.permissions.admin_permissions

List of Discord permission names that grant administrative access.

Common values: ["administrator", "manage_guild", "manage_channels"]

bot.brand_color

Hexadecimal color code for WeakAuras branding in embeds.

Default: 0x9F4AF3 (WeakAuras purple)

bot.logo_path

Path to logo file for embed thumbnails.

Optional: If not provided or file doesn’t exist, text-only footer is used.

Storage Settings

storage.data_directory

Directory path where server-specific data is stored.

Default: "server_data"

Environment Variables

You can also use environment variables for sensitive configuration:

export DISCORD_DEV_TOKEN="your_dev_token"
export DISCORD_PROD_TOKEN="your_prod_token"

Server-Specific Configuration

Each Discord server gets its own configuration file stored in:

{data_directory}/{server_name}_{guild_id}/{guild_id}_config.json

Server configuration includes:

{
  "events": {
    "temperature": {
      "enabled": true
    }
  }
}

Configuration Examples

Minimal Configuration

discord:
  tokens:
    dev: "your_token_here"

Full Configuration

discord:
  tokens:
    dev: "MDx1234567890.ABCDEF.your_development_token_here"
    prod: "MDx0987654321.GHIJKL.your_production_token_here"

bot:
  permissions:
    admin_roles: ["admin", "moderator", "wa-admin"]
    admin_permissions: ["administrator", "manage_guild"]
  brand_color: 0x9F4AF3
  logo_path: "assets/weakauras_logo.png"

storage:
  data_directory: "server_data"

Security Considerations

  1. Never commit tokens to version control

    The settings/token.yml file is gitignored by default.

  2. Use different tokens for dev/prod

    This prevents accidental commands on production servers during development.

  3. Restrict bot permissions

    Only grant the minimum necessary permissions in Discord server settings.

  4. Protect configuration files

    Ensure configuration files are not publicly readable on your server.

Configuration Validation

The bot validates configuration on startup:

  • Checks for required token based on environment

  • Validates YAML syntax

  • Warns about missing optional settings

If validation fails, the bot will exit with an error message indicating the issue.