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 forward_channel is located.

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"