# Bot ID
# Add the Client ID of bot which should be running Bastion.
# https://discord.com/developers/applications
# `BOT_ID` environment variable overwrites this value.
id: ""

# Bot Token
# Add the token of the bot which should be running Bastion.
# https://discord.com/developers/applications
# `BOT_TOKEN` environment variable overwrites this value.
token: ""

# Bot Owners
# User IDs of users who should be considered as the bot owners.
# `OWNER_ID` environment variable adds an additional owner to the list.
owners:
  - "YOUR_USER_ID"
  - "ANOTHER_USER_ID"

# MongoDB connection URI
# `MONGO_URI` environment variable overwrites this value.
# NOTE: If you're running MongoDB locally and using Bastion's Docker image,
# replace the IP `127.0.0.1` to `host.docker.internal` so Docker can access
# your local MongoDB server.
mongoURI: "mongodb://127.0.0.1:27017/bastion"

# Presences
# Bastion will cycle through these activities randomly.
# status — online / idle / dnd / invisible
# activity — 0 (Playing) / 1 (Streaming) / 2 (Listening) / 3 (Watching) /  4 (Custom) / 5 (Competing)
# name — string
# url — Twitch URL when `activity` is set to `1` (Streaming)
presences:
- status: "online"
  activity: 3
  name: "the server"
  url:
- status: "dnd"
  activity: 1
  name: "some games"
  url: https://twitch.tv/iamtraction

# Enable Music Activity
# When enabled, Bastion updates the activity to the currently playing track.
# It should ideally be disabled if music is played on multiple servers.
# `BASTION_MUSIC_ACTIVITY` environment variable overwrites this value.
musicActivity: true

# Relay Direct Messages
# When enabled, Bastion will relay any direct messages it receives to the
# owner of the bot application / team.
# If a Discord webhook URL is specified, it'll relay the direct messages
# via the webhook.
# `BASTION_RELAY_DMS` environment variable overwrites this value.
relayDirectMessages: false

# Unsafe Mode
# When enabled, this enables usage of unsafe commands like `exec` and `eval`.
# Keep this disabled if the bot owner isn't exclusively you.
# `UNSAFE_MODE` environment variable overwrites this value.
unsafeMode: false

# Bastion API Port
# Port used for Bastion API Server.
# If port isn't set the API server won't start.
# `BASTION_API_PORT` and `PORT` environment variables overwrites this value.
port: 8377

# Bastion API Auth
# Auth for accessing the Bastion API Server.
# If auth isn't set the API server won't start.
# `BASTION_API_AUTH` environment variable overwrites this value.
auth: ""

# API Keys
# These are optional and only required for specific features and/or commands.

# Required for `cryptocurrency` command.
coinMarketCapApiKey: ""
# Required for `apod` command.
nasaApiKey: "DEMO_KEY"
# Required for `chat` command to use the OpenAI's ChatGPT APIs.
# API pricing depends on these values.
# For more details, check https://openai.com/pricing
openai:
  apiKey: ""
  # If you want to use GPT-4o, set `model` to `gpt-4o`.
  # https://openai.com/api/pricing
  model: "gpt-4o-mini"
  # Change the `maxTokens` value to set the length of ChatGPT's responses.
  # https://platform.openai.com/tokenizer
  maxTokens: 100
# Required for `chat` command to use the Google's Gemini APIs.
# API pricing depends on these values.
# For more details, check https://ai.google.dev/pricing
gemini:
  apiKey: ""
  # If you want to use Gemini 1.5 Pro, set `model` to `gemini-1.5-pro`.
  # https://ai.google.dev/gemini-api/docs/models/gemini
  model: "gemini-1.5-flash"
  # Change the `maxOutputTokens` value to set the length of ChatGPT's responses.
  # https://ai.google.dev/gemini-api/docs/tokens
  maxOutputTokens: 256
# Required for `chat` command to use the Anthropic's APIs.
# API pricing depends on these values.
# For more details, check https://www.anthropic.com/pricing#anthropic-api
anthropic:
  apiKey: ""
  # If you want to use Claude 3.5 Sonnet, set `model` to `claude-3-5-sonnet-20240620`.
  # https://docs.anthropic.com/en/docs/about-claude/models
  model: "claude-3-haiku-20240307"
  # Change the `maxTokens` value to set the length of Claude's responses.
  # https://docs.anthropic.com/en/docs/about-claude/models#model-comparison-table
  maxTokens: 128
# Required for `weather` command.
openWeatherMapApiKey: ""
# Required for `movie` and `tv` commands.
tmdbApiKey: ""
# Required for `apex`, `csgo`, and `fortnite` commands.
trackerNetworkApiKey: ""
# Required for Twitch live stream notifications and `game` command.
twitch:
  clientId: ""
  clientSecret: ""
  accessToken: ""
# Required for `rainbow6` command.
ubisoft:
  email: ""
  password: ""
# Required for `definitions` command.
wordnikApiKey: ""

# Additional Settings
# These settings are for internal use only. You don't need to configure this.
bastion:
  webhookId: ""
  webhookToken: ""
patreon:
  accessToken: ""