From 1529d373bb2a413f617a459b1c7ca7fed974cb32 Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:09:08 +0200 Subject: [PATCH 1/4] Update (default) configuration --- docs/setup/server/configuration/index.md | 42 +++++++++++++++--------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/docs/setup/server/configuration/index.md b/docs/setup/server/configuration/index.md index fecd737..3eb8c26 100644 --- a/docs/setup/server/configuration/index.md +++ b/docs/setup/server/configuration/index.md @@ -25,24 +25,25 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | -------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------- | --------------------------------------------------------------------- | | gateway_endpointPrivate | null | string | Used for internal communication with gateway | | gateway_endpointPublic | null | string | Publicly announced gateway endpoint | -| cdn_endpointPrivate | | string | See gateway_endpointPrivate | -| cdn_endpointPublic | | string | See gateway_endpointPublic | +| cdn_endpointPrivate | null | string | CDN endpoint. See gateway_endpointPrivate | +| cdn_endpointPublic | null | string | CDN endpoint. See gateway_endpointPublic | | cdn_resizeHeightMax | 1000 | number | Maximum image resize height for embeds. | | cdn_resizeWidthMax | 1000 | number | Maximum image resize width for embeds. | | [cdn_imagorServerUrl](imagor.md) | null | string | Imagor instance endpoint for external image resizing. | | api_defaultVersion | 9 | string | API version to use when not specified | | api_activeVersions_0 | 6, 7, 8, 9 | string[] | Allowed API version numbers. [Array](#array-types). | -| api_endpointPublic | "/api" | string | See gateway_endpointPublic | +| api_endpointPublic | null | string | Endpoint the API is available at, usually `/api` | | general_instanceName | {{ project.name }} Instance | string | Announced instance name | | general_instanceDescription | This is a {{ project.name }} instance made in the pre-release days | string | Announced instance description | | general_frontPage | null | string | Announced instance front page | | general_tosPage | null | string | Announced instance TOS page | | general_correspondenceEmail | null | string | Announced instance correspondence email | -| general_correspondenceUserID | null | string | Announced instance correspondence ID (from this instance) | +| general_correspondenceUserID | null | Snowflake | Announced instance correspondence user ID (from this instance) | | general_image | null | string | Announced instance image URL | -| general_instanceId | Snowflake of instance creation date | Snowflake | Announced instance ID | +| general_instanceId | Snowflake of instance creation date | Snowflake | Announced instance ID. Deprecated. | +| general_autoCreateBotUsers | false | boolean | Whether to automatically create a bot when creating an application | | limits_user_maxGuilds | 1048576 | number | Maxmimum guilds a user can join | -| limits_user_maxUsername | 127 | number | Maximum username length | +| limits_user_maxUsername | 32 | number | Maximum username length | | limits_user_maxFriends | 5000 | number | Maximum number of friends per user | | limits_guild_maxRoles | 1000 | number | Maximum number of roles in a guild | | limits_guild_maxEmojis | 2000 | number | Maximum number of emojis in a guild | @@ -58,7 +59,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | limits_channel_maxPins | 500 | number | Maximum number of pins per channel | | limits_channel_maxTopic | 1024 | number | Maximum channel topic character length | | limits_channel_maxWebhooks | 100 | number | Maximum number of webhooks per channel | -| limits_rate_enabled | true | boolean | Whether rate limits are enabled | +| limits_rate_enabled | false | boolean | Whether rate limits are enabled | | limits_rate_ip_count | 500 | number | Allowed number of requests per IP within window | | limits_rate_ip_window | 5 | number | IP rate limit window, in seconds | | limits_rate_global_count | 250 | number | Allowed number of requests globally within window | @@ -81,18 +82,20 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | limits_absoluteRate_sendMessage_limit | 200 | number | Absolute number of messages instance-wide per window | | limits_absoluteRate_sendMessage_window | 60000 | number | Global sendMessage window, in seconds | | limits_absoluteRate_sendMessage_enabled | true | boolean | Whether absolute message sending rate limits are enabled | +| metrics_timeout | 30000 | number | Currently unused | | [security_captcha_enabled](../security/captcha.md) | false | boolean | Whether to enable captchas for login/register | -| security_captcha_service | null | "recaptcha"/"hcaptcha" | Which captcha service to use | +| security_captcha_service | null | "recaptcha", "hcaptcha" | Which captcha service to use | | security_captcha_sitekey | null | string | Captcha service sitekey | | security_captcha_secret | null | string | Captcha service secret | | security_twoFactor_generateBackupCodes | true | boolean | Whether to generate backup codes for MFA users | +| security_autoUpdate | true | boolean | Automatically updates NPM packages daily. Currently unused | | security_requestSignature | Secret secret | string | The signature required for CDN or [Imagor](imagor.md) usage | | security_jwtSecret | Secure secret | string | The secret used for user token generation | -| [security_forwardedFor](../reverseProxy.md) | null | string | HTTP header for user's real IP. | +| [security_forwardedFor](../reverseProxy.md) | null | string | HTTP header for user's real IP | | security_ipdataApiKey | {{ project.name }} IPdata key | string | API key used for IP geolocation and proxy detection | | security_mfaBackupCodeCount | 10 | number | Number of MFA backup codes to generate | | security_statsWorldReadable | true | boolean | Whether instance stats are publically accessible or require right | -| security_defaultRegistrationTokenExpiration | 604800000 | number | Seconds for [registration tokens](../security/regTokens.md) to expire | +| security_defaultRegistrationTokenExpiration | 604800000 | number | [Registration token](../security/regTokens.md) expiry in milliseconds | | login_requireCaptcha | false | boolean | Whether login requires captcha verification | | login_requireVerification | false | boolean | Whether login requires email verification | | register_email_required | false | boolean | Whether an email is required for registration | @@ -110,6 +113,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | register_requireCaptcha | true | boolean | Whether registration requires captcha verification | | register_requireInvite | false | boolean | Whether registration requires a guild invite | | register_guestsRequireInvite | true | boolean | Whether guests accounts require a guild invite | +| register_allowNewRegistration | true | boolean | Whether registration is enabled. Deprecated, use `register_disabled`. | | register_allowMultipleAccounts | true | boolean | Allow multiple accounts with the same client fingerprint | | register_blockProxies | true | boolean | Whether proxies are blocked from registration | | register_incrementingDiscriminators | false | boolean | Whether discriminators are random or incrementing | @@ -122,14 +126,16 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | regions_available_0_vip | false | boolean[] | Whether this voice region is VIP exclusive | | regions_available_0_custom | false | boolean[] | Whether this is a custom voice region (used for events/etc) | | regions_available_0_deprecated | false | boolean[] | Whether this is a deprecated voice region (clients avoid these) | -| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery should show all guilds | +| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery should show all guilds and ignore limits | +| guild_discovery_useRecommendation | false | boolean | Currently unused | +| guild_discovery_offset | 0 | number | Default offset when returning discoverable guilds. Currently unused | | guild_discovery_limit | 24 | number | Maximum number of guild discovery elements per page | | guild_autoJoin_enabled | true | boolean | Whether users auto join guild(s) on registration | | guild_autoJoin_canLeave | true | boolean | Whether users can leave the auto-joined guild(s) | | [guild_defaultFeatures_0](guildFeatures.md) | null | string | Features automatically granted to guilds upon creation | | gif_enabled | true | boolean | Whether GIF features are enabled | | gif_provider | tenor | "tenor" | Which GIF service to use | -| gif_apiKey | LIVDSRZULELA | string | GIF service API key | +| gif_apiKey | {{ project.name }} tenor API key | string | GIF service API key | | [rabbitmq_host](rabbitmq.md) | null | string | RabbitMQ connection string | | templates_enabled | true | boolean | Whether guild templates are enabled | | templates_allowTemplateCreation | true | boolean | Whether new guild templates can be created | @@ -139,12 +145,18 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | sentry_endpoint | {{ project.name }} sentry endpoint | string | Sentry endpoint | | sentry_traceSampleRate | 1 | number | Sentry sample rate (1 means all requests) | | sentry_environment | System hostname | string | Sentry environment name | -| defaults_user_premium | false | boolean | Whether users are given premium upon registration | -| defaults_user_premium_type | 2 | number | The premium type given to users upon registration | +| defaults_user_premium | true | boolean | Whether users are given premium upon registration | +| defaults_user_premiumType | 2 | number | The premium type given to users upon registration | | defaults_user_verified | true | boolean | Whether users get verified email upon registration | +| defaults_guild_maxPresences | 250000 | number | Maximum number of presences in a guild upon guild creation | +| defaults_guild_maxVideoChannelUsers | 200 | number | Maximum default number of users in a voice channel with video enabled | +| defaults_guild_afkTimeout | 300 | number | AFK timeout in seconds upon guild creation | +| defaults_guild_defaultMessageNotifications | 1 | number | Message notification level upon guild creation | +| defaults_guild_explicitContentFilter | 0 | number | Explicit content filter level upon guild creation | | [external_twitter](embeds.md) | null | string | Twitter API key used for Twitter embeds | | [email_provider](../email.md) | null | "smtp", "mailgun", "mailjet", "sendgrid" | Which email transport to use | -| email_smtp_host | null | string | SMTP Host for sending email | +| email_senderAddress | null | string | Sender email address. Defaults to `general_correspondenceEmail` | +| email_smtp_host | null | string | SMTP host for sending email | | email_smtp_port | null | number | SMTP port | | email_smtp_secure | null | boolean | Use TLS for SMTP | | email_smtp_username | null | string | SMTP username | From 659279cea264a65c4103af30c3d8b4bdf4c79728 Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:17:49 +0200 Subject: [PATCH 2/4] seconds vs milliseconds how could it matter --- docs/setup/server/configuration/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/setup/server/configuration/index.md b/docs/setup/server/configuration/index.md index 3eb8c26..dae8194 100644 --- a/docs/setup/server/configuration/index.md +++ b/docs/setup/server/configuration/index.md @@ -77,10 +77,10 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | limits_rate_routes_auth_register_count | 2 | number | Allowed number of IP /register requests within window | | limits_rate_routes_auth_register_window | 43200 | number | IP /register rate limit window, in seconds | | limits_absoluteRate_register_limit | 25 | number | Absolute number of registrations instance-wide per window | -| limits_absoluteRate_register_window | 3600000 | number | Global /register rate limit window, in seconds | +| limits_absoluteRate_register_window | 3600000 | number | Global /register rate limit window, in milliseconds | | limits_absoluteRate_register_enabled | true | boolean | Whether absolute register rate limits are enabled | | limits_absoluteRate_sendMessage_limit | 200 | number | Absolute number of messages instance-wide per window | -| limits_absoluteRate_sendMessage_window | 60000 | number | Global sendMessage window, in seconds | +| limits_absoluteRate_sendMessage_window | 60000 | number | Global sendMessage window, in milliseconds | | limits_absoluteRate_sendMessage_enabled | true | boolean | Whether absolute message sending rate limits are enabled | | metrics_timeout | 30000 | number | Currently unused | | [security_captcha_enabled](../security/captcha.md) | false | boolean | Whether to enable captchas for login/register | From 24b69d063d5974f043174400652cfd33fbc1e0bf Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Thu, 4 Jul 2024 19:56:17 +0200 Subject: [PATCH 3/4] Update email setup docs --- docs/setup/server/email.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/setup/server/email.md b/docs/setup/server/email.md index b774354..211e2b1 100644 --- a/docs/setup/server/email.md +++ b/docs/setup/server/email.md @@ -19,8 +19,7 @@ You must edit: - The `general_frontPage` [config](configuration/index.md) value, used to generate verification/password reset links. Be sure to set it to the {{ project.name }} web app URL. For example, `https://staging.{{ project.domain }}` -- The `general_correspondenceEmail` config value, used as the 'from' email address. - If unset, `noreply@localhost` is used, which will most likely throw an error with your email service. +- The `email_senderAddress` config value, used as the 'from' email address. If it's not set, `general_correspondenceEmail` is used. Optionally: From c87bb078333e93922c57a39722adc9d858e46c8e Mon Sep 17 00:00:00 2001 From: TomatoCake <60300461+DEVTomatoCake@users.noreply.github.com> Date: Sun, 7 Jul 2024 06:55:04 +0200 Subject: [PATCH 4/4] guild_discovery_showAllGuilds fix --- docs/setup/server/configuration/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/server/configuration/index.md b/docs/setup/server/configuration/index.md index dae8194..f1dcdf4 100644 --- a/docs/setup/server/configuration/index.md +++ b/docs/setup/server/configuration/index.md @@ -126,7 +126,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui | regions_available_0_vip | false | boolean[] | Whether this voice region is VIP exclusive | | regions_available_0_custom | false | boolean[] | Whether this is a custom voice region (used for events/etc) | | regions_available_0_deprecated | false | boolean[] | Whether this is a deprecated voice region (clients avoid these) | -| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery should show all guilds and ignore limits | +| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery shows guilds without the DISCOVERABLE feature | | guild_discovery_useRecommendation | false | boolean | Currently unused | | guild_discovery_offset | 0 | number | Default offset when returning discoverable guilds. Currently unused | | guild_discovery_limit | 24 | number | Maximum number of guild discovery elements per page |