Skip to main content

NodeCG Configuration

NodeCG is configured via a cfg/nodecg.json file with the following schema:

Schema

  • host String The IP address or hostname that NodeCG should bind to.
  • port Integer The port that NodeCG should listen on.
  • baseURL String The URL of this instance. Used for things like cookies. Defaults to HOST:PORT. If you use a reverse proxy, you\'ll likely need to set this value.
  • developer Boolean Whether to enable features that speed up development. Not suitable for production.
  • exitOnUncaught Boolean Whether or not to exit on uncaught exceptions.
  • logging Object Contains other configuration properties.
    • replicants Boolean Whether to enable logging of the Replicants subsystem. Very spammy.
    • console Object Contains properties for console logging.
      • enabled Boolean Whether to enable console logging.
      • timestamps Boolean Whether to add timestamps to the console logging.
      • level String Lowest importance of messages which should be logged. Must be "trace", "debug", "info", "warn" or "error"
    • file Object Contains properties for file logging.
      • enabled Boolean Whether to enable file logging.
      • timestamps Boolean Whether to add timestamps to the file logging.
      • path String The filepath to log to.
      • level String Lowest importance of messages which should be logged. Must be "trace", "debug", "info", "warn" or "error"
  • bundles Object Contains configuration for bundles.
    • enabled Array of strings A whitelist array of bundle names that will be the only ones loaded at startup. Cannot be used with bundles.disabled.
    • disabled Array of strings A blacklist array of bundle names that will not be loaded at startup. Cannot be used with bundles.enabled.
    • paths Array of strings An array of additional paths where bundles are located.
  • login Object Contains other configuration properties.
    • enabled Boolean Whether to enable login security.
    • sessionSecret String The secret used to salt sessions.
    • forceHttpsReturn Boolean orces Steam & Twitch login return URLs to use HTTPS instead of HTTP. Useful in reverse proxy setups.
    • local Object Contains local username & password login configuration properties.
      • enabled Boolean Whether to enable Local authentication.
      • allowedUsers Array of objects Which usernames and passwords to allow. Example: {"username": "admin", "password": "foo123"}
    • steam Object Contains steam login configuration properties.
    • twitch Object Contains twitch login configuration properties.
    • discord Object Contains discord login configuration properties.
      • enabled Boolean Whether to enable Discord authentication.
      • clientID String A Discord application ClientID https://discord.com/developers/applications/
      • clientSecret String A Discord application ClientSecret https://discord.com/developers/applications/
      • Note: Configure your Discord OAuth credentials with a Redirect URI to {baseURL}/login/auth/discord
      • scope String A space-separated string of Discord application permissions.
      • allowedUserIDs Array of strings Which Discord IDs to allow
      • allowedGuilds Array of objects Which servers to allow users from
      • Format for allowedGuilds objects
        • guildID String Users in this Discord Server are allowed to log in
        • allowedRoleIDs Array of strings Additionally require one of the roles on the server to log in
        • guildBotToken String Discord bot token, needed if allowedRoleIDs is used https://discord.com/developers/applications/
  • ssl Object Contains HTTPS/SSL configuration properties.
    • enabled Boolean Whether to enable SSL/HTTPS encryption.
    • allowHTTP Boolean Whether to allow insecure HTTP connections while SSL is active.
    • keyPath String The path to an SSL key file.
    • certificatePath String The path to an SSL certificate file.
    • passphrase String The passphrase for the provided key file.
  • sentry Object Contains Sentry configuration properties. - enabled Boolean Whether to enable Sentry error reporting. - dsn String Your private DSN, for server-side error reporting. - publicDsn String Your public sentry DSN, for browser error reporting.

Example Config

{
"host": "0.0.0.0",
"port": 9090,
"developer": false,
"bundles": {
"enabled": ["bundle-name"],
"paths": ["C:\\nodecg\\experimental-bundles"]
},
"login": {
"enabled": true,
"sessionSecret": "supersecret",
"steam": {
"enabled": true,
"apiKey": "YYYYY",
"allowedIds": ["11111111111111111", "22222222222222222"]
},
"twitch": {
"enabled": true,
"clientID": "your_app_id",
"clientSecret": "your_app_key",
"scope": "user_read",
"allowedUsernames": ["some_username"],
"allowedIds": ["11111111111111111", "22222222222222222"]
},
"discord": {
"enabled": true,
"clientID": "your_discord_app_client_id",
"clientSecret": "your_discord_app_client_secret",
"scope": "identify guilds",
"allowedUserIDs": [
"159600065017675778",
"54561421005950976"
],
"allowedGuilds": [
{
"guildID": "754749209722486814",
"allowedRoleIDs": [
"754751725457637546",
"755012946400378910"
],
"guildBotToken": "your_bot_token"
},
{
"guildID": "754749209722486814"
}
]
},
"logging": {
"replicants": false,
"console": {
"enabled": true,
"timestamps": false,
"level": "trace"
},
"file": {
"enabled": true,
"timestamps": true,
"path": "logs/server.log",
"level": "info"
}
},
"ssl": {
"enabled": false,
"keyPath": "",
"certificatePath": ""
},
"sentry": {
"enabled": true,
"dsn": "https://xxx:yyy@sentry.io/zzz",
"publicDsn": "https://xxx@sentry.io/zzz"
}
}