PluralKit/dev-docs/dotnet.md

8.5 KiB

Configuration

Configuration was previously done through a JSON configuration file pluralkit.conf placed in the bot's working directory. To simplify things however and maintain consistency with the Rust services, it is now recommended to use environment variables.

The minimum configuration needed for the dotnet part of the bot to function include the following:

  • PluralKit__Bot__Token: the Discord bot token to connect with
  • PluralKit__Bot__ClientId: the ID of the bot's user account, used for calculating the bot's own permissions and for the link in pk;invite
  • PluralKit__Database: the URI of the PostgreSQL database to connect to (in ADO.NET Npgsql format)
  • PluralKit__RedisAddr: the host:port of the Redis database to connect to

When using Nix, the Database URI Username, Password, and Database fields must match what the database was setup with in the flake.nix file!

Available Configuration Values:

Name Description Rust Equivalent (if applicable)
PluralKit__Api__ClientId the ID of the bot's user account, used for OAuth with Discord pluralkit__discord__client_id
PluralKit__Api__ClientSecret the client secret of the application, used for OAuth with Discord pluralkit__discord__client_secret
PluralKit__Api__TrustAuth boolean used to determine if the API should trust upstream to provide it the system id of the authenticated user
PluralKit__Bot__AdminRole Discord role ID used to determine if a user can use pk;admin commands
PluralKit__Bot__AvatarServiceUrl the URL of the avatar service
PluralKit__Bot__ClientId the ID of the bot's user account, used for calculating the bot's own permissions and for the link in pk;invite. pluralkit__discord__client_id
PluralKit__Bot__Cluster__TotalShards the total number of shards pluralkit__discord__cluster__total_shards
PluralKit__Bot__DisableGateway (deprecated) boolean used to enable or disable the inbuilt gateway functions, should be true if using Rust gateway
PluralKit__Bot__DiscordBaseUrl the base Discord API url used for HTTP API requests pluralkit__discord__api_base_url
PluralKit__Bot__EventAwaiterTarget the target bind address used to receive bot-instance specific events (such as interactive prompts/menus) from gateway over http -- value should generally be source-addr.
PluralKit__Bot__HttpCacheUrl the URL of the http cache to use, as of now, the gateway service
PluralKit__Bot__HttpListenerAddr the base bind address (use allv4v6 instead of :: if you want to also bind to 0.0.0.0)
PluralKit__Bot__Token the Discord bot token to connect with pluralkit__discord__bot_token
PluralKit__Database the URI of the database to connect to (in ADO.NET Npgsql format) pluralkit__db__data_db_uri (diff formatting)
PluralKit__MessagesDatabase the URI of the database for message storage to connect to (in ADO.NET Npgsql format) pluralkit__db__messages_db_uri (diff formatting)
PluralKit__RedisAddr the host:port of a Redis database to connect to pluralkit__db__data_redis_addr (diff formatting)
PluralKit__DispatchProxyToken the token used to authenticate with the dispatch proxy service
PluralKit__DispatchProxyUrl the URL of the dispatch proxy service
PluralKit__ConsoleLogLevel the minimum log level used for logging
PluralKit__InfluxUrl the URL to an InfluxDB server to report aggregate statistics to. An example of these stats can be seen on the public stats page.
PluralKit__InfluxDb the name of an InfluxDB database to report statistics to. If either this field or PluralKit.InfluxUrl are absent, InfluxDB reporting will be disabled.
PluralKit__SentryUrl the Sentry client key/DSN to report runtime errors to. If absent, disables Sentry integration.