Configuring the application#
The application can be configured via TOML files. It will look for these files in the /opt/disco/run/ directory. The
format and structure of these files is detailed here.
As described on the landing page, the /opt/disco/ directory should be a volume mounted into the container at runtime
so that you can manage the configuration files on the host system. This also makes it so that logs and databases are
persistent.
Secrets (required)#
Location of the file: /opt/disco/run/secrets.toml
Secrets schema documentation#
This holds all the secrets required for your bot to function.
Secrets top level#
Property |
Type |
Required |
Description |
|---|---|---|---|
$schema |
string (uri) |
Which JSONSchema the file follows. |
|
disco |
object |
Yes |
This holds all the actual secrets data. |
disco#
Property |
Type |
Required |
Description |
|---|---|---|---|
token |
string |
Yes |
The ‘Bot Token’ from your Discord App. |
Secrets example#
"$schema" = "https://raw.githubusercontent.com/FlotterCodername/disco/refs/heads/main/res/schemas/secrets.v1.schema.json"
[disco]
token = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.A1b2C3.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL"
Bot (optional)#
Location of the file: /opt/disco/run/bot.toml
Bot schema documentation#
This configuration stores everything related to the bot itself.
Bot top level#
Property |
Type |
Required |
Description |
|---|---|---|---|
$schema |
string (uri) |
Which JSONSchema the file follows. |
|
no-reply |
object |
Configuration for the ‘no-reply’ feature. If this is not set, the bot will not send any automatic replies. |
no-reply (Optional)#
Property |
Type |
Required |
Description |
|---|---|---|---|
enabled |
boolean |
Yes |
Whether the ‘no-reply’ feature is enabled. |
message |
string |
The message to send back when the bot receives a message. If empty or not set, a default message in English will be sent. |
Bot example#
"$schema" = "https://raw.githubusercontent.com/FlotterCodername/disco/refs/heads/main/res/schemas/bot.v1.schema.json"
[no-reply]
enabled = true
message = "⚠️ I am a bot. My inbox is not monitored."
Podcasts (optional)#
Location of the file: /opt/disco/run/podcasts.toml
Podcasts schema documentation#
This configuration stores everything related to podcast feeds.
Podcasts top level#
Property |
Type |
Required |
Description |
|---|---|---|---|
$schema |
string (uri) |
Which JSONSchema the file follows. |
|
podcast |
array[object] |
Podcast feeds to forward to a Discord channel. |
podcast[] (Optional)#
Array items:
Property |
Type |
Required |
Description |
|---|---|---|---|
forward_channel |
string |
Yes |
The exact name of the channel where podcast episodes shall appear. |
forward_guild |
string |
Yes |
The exact name of the Discord server (‘guild’) where |
name |
string |
Yes |
Your chosen name of the podcast (must be unique). May appear in user-facing text. |
url_artwork |
string (uri) |
The URL for the podcast cover art. This is also be used as a fallback whenever episode artwork is not available. |
|
url_feed |
string (uri) |
Yes |
The URL for the podcast RSS feed. |
Podcasts example#
"$schema" = "https://raw.githubusercontent.com/FlotterCodername/disco/refs/heads/main/res/schemas/podcasts.v1.schema.json"
[[podcast]]
forward_channel = "podcast"
forward_guild = "My Server"
name = "My Podcast"
url_artwork = "https://example.com/podcast.jpg"
url_feed = "https://example.com/podcast.rss"
[[podcast]]
"..." = "..."
name = "My Other Podcast"