mirror of
https://github.com/spacebarchat/docs.git
synced 2024-11-25 19:52:28 +01:00
Documentation for fosscord mail
This commit is contained in:
parent
de1c312690
commit
a5b5a3c53c
@ -19,126 +19,140 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui
|
|||||||
|
|
||||||
## Available Configuration Options
|
## Available Configuration Options
|
||||||
|
|
||||||
| key | default | type | description |
|
| key | default | type | description |
|
||||||
| -------------------------------------------------- | -------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------- |
|
| -------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------- |
|
||||||
| gateway_endpointClient | null | string | Injected into index.html if available |
|
| gateway_endpointClient | null | string | Injected into index.html if available |
|
||||||
| gateway_endpointPrivate | null | string | Used for internal communication with gateway |
|
| gateway_endpointPrivate | null | string | Used for internal communication with gateway |
|
||||||
| gateway_endpointPublic | null | string | Publicly announced gateway endpoint |
|
| gateway_endpointPublic | null | string | Publicly announced gateway endpoint |
|
||||||
| cdn_endpointClient | null | string | See gateway_endpointClient |
|
| cdn_endpointClient | null | string | See gateway_endpointClient |
|
||||||
| cdn_endpointPrivate | http://localhost:3001 | string | See gateway_endpointPrivate |
|
| cdn_endpointPrivate | http://localhost:3001 | string | See gateway_endpointPrivate |
|
||||||
| cdn_endpointPublic | http://localhost:3001 | string | See gateway_endpointPublic |
|
| cdn_endpointPublic | http://localhost:3001 | string | See gateway_endpointPublic |
|
||||||
| cdn_resizeHeightMax | 1000 | number | Maximum image resize height for embeds. |
|
| cdn_resizeHeightMax | 1000 | number | Maximum image resize height for embeds. |
|
||||||
| cdn_resizeWidthMax | 1000 | number | Maximum image resize width 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. |
|
| [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_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_activeVersions_0 | 6, 7, 8, 9 | string[] | Allowed API version numbers. [Array](#array-types). |
|
||||||
| general_instanceName | Fosscord Instance | string | Announced instance name |
|
| api_endpointPublic | "/api" | string | See gateway_endpointPublic |
|
||||||
| general_instanceDescription | This is a Fosscord instance made in the pre-release days | string | Announced instance description |
|
| general_instanceName | Fosscord Instance | string | Announced instance name |
|
||||||
| general_frontPage | null | string | Announced instance front page |
|
| general_instanceDescription | This is a Fosscord instance made in the pre-release days | string | Announced instance description |
|
||||||
| general_tosPage | null | string | Announced instance TOS page |
|
| general_frontPage | null | string | Announced instance front page |
|
||||||
| general_correspondenceEmail | null | string | Announced instance correspondence email |
|
| general_tosPage | null | string | Announced instance TOS page |
|
||||||
| general_correspondenceUserID | null | string | Announced instance correspondence ID (from this instance) |
|
| general_correspondenceEmail | null | string | Announced instance correspondence email |
|
||||||
| general_image | null | string | Announced instance image URL |
|
| general_correspondenceUserID | null | string | Announced instance correspondence ID (from this instance) |
|
||||||
| general_instanceId | Snowflake of instance creation date | Snowflake | Announced instance ID |
|
| general_image | null | string | Announced instance image URL |
|
||||||
| limits_user_maxGuilds | 1048576 | number | Maxmimum guilds a user can join |
|
| general_instanceId | Snowflake of instance creation date | Snowflake | Announced instance ID |
|
||||||
| limits_user_maxUsername | 127 | number | Maximum username length |
|
| limits_user_maxGuilds | 1048576 | number | Maxmimum guilds a user can join |
|
||||||
| limits_user_maxFriends | 5000 | number | Maximum number of friends per user |
|
| limits_user_maxUsername | 127 | number | Maximum username length |
|
||||||
| limits_guild_maxRoles | 1000 | number | Maximum number of roles in a guild |
|
| limits_user_maxFriends | 5000 | number | Maximum number of friends per user |
|
||||||
| limits_guild_maxEmojis | 2000 | number | Maximum number of emojis in a guild |
|
| limits_guild_maxRoles | 1000 | number | Maximum number of roles in a guild |
|
||||||
| limits_guild_maxMembers | 25000000 | number | Maximum number of members in a guild |
|
| limits_guild_maxEmojis | 2000 | number | Maximum number of emojis in a guild |
|
||||||
| limits_guild_maxChannels | 65535 | number | Maximum number of channels in a guild |
|
| limits_guild_maxMembers | 25000000 | number | Maximum number of members in a guild |
|
||||||
| limits_guild_maxChannelsInCategory | 65535 | number | Maximum number of channels per category in a guild |
|
| limits_guild_maxChannels | 65535 | number | Maximum number of channels in a guild |
|
||||||
| limits_message_maxCharacters | 1048576 | number | Maximum character count per message |
|
| limits_guild_maxChannelsInCategory | 65535 | number | Maximum number of channels per category in a guild |
|
||||||
| limits_message_maxTTSCharacters | 160 | number | Maximum character count per text to speech messages |
|
| limits_message_maxCharacters | 1048576 | number | Maximum character count per message |
|
||||||
| limits_message_maxReactions | 2048 | number | Maximum number of reactions per message |
|
| limits_message_maxTTSCharacters | 160 | number | Maximum character count per text to speech messages |
|
||||||
| limits_message_maxAttachmentSize | 1073741824 | number | Maximum total attachment size per message |
|
| limits_message_maxReactions | 2048 | number | Maximum number of reactions per message |
|
||||||
| limits_message_maxBulkDelete | 1000 | number | Maximum number of messages deletable through bulk delete |
|
| limits_message_maxAttachmentSize | 1073741824 | number | Maximum total attachment size per message |
|
||||||
| limits_message_maxEmbedDownloadSize | 5242880 | number | Maximum download size of external embeddable content |
|
| limits_message_maxBulkDelete | 1000 | number | Maximum number of messages deletable through bulk delete |
|
||||||
| limits_channel_maxPins | 500 | number | Maximum number of pins per channel |
|
| limits_message_maxEmbedDownloadSize | 5242880 | number | Maximum download size of external embeddable content |
|
||||||
| limits_channel_maxTopic | 1024 | number | Maximum channel topic character length |
|
| limits_channel_maxPins | 500 | number | Maximum number of pins per channel |
|
||||||
| limits_channel_maxWebhooks | 100 | number | Maximum number of webhooks per channel |
|
| limits_channel_maxTopic | 1024 | number | Maximum channel topic character length |
|
||||||
| limits_rate_enabled | true | boolean | Whether rate limits are enabled |
|
| limits_channel_maxWebhooks | 100 | number | Maximum number of webhooks per channel |
|
||||||
| limits_rate_ip_count | 500 | number | Allowed number of requests per IP within window |
|
| limits_rate_enabled | true | boolean | Whether rate limits are enabled |
|
||||||
| limits_rate_ip_window | 5 | number | IP rate limit window, in seconds |
|
| limits_rate_ip_count | 500 | number | Allowed number of requests per IP within window |
|
||||||
| limits_rate_global_count | 250 | number | Allowed number of requests globally within window |
|
| limits_rate_ip_window | 5 | number | IP rate limit window, in seconds |
|
||||||
| limits_rate_global_window | 5 | number | Global rate limit window, in seconds |
|
| limits_rate_global_count | 250 | number | Allowed number of requests globally within window |
|
||||||
| limits_rate_error_count | 10 | number | Number of allowed errors per user within window |
|
| limits_rate_global_window | 5 | number | Global rate limit window, in seconds |
|
||||||
| limits_rate_error_window | 5 | number | User error rate limit window, in seconds |
|
| limits_rate_error_count | 10 | number | Number of allowed errors per user within window |
|
||||||
| limits_rate_routes_guild_count | 5 | number | Allowed number of /guild\* requests per user within window |
|
| limits_rate_error_window | 5 | number | User error rate limit window, in seconds |
|
||||||
| limits_rate_routes_guild_window | 5 | number | User /guild\* rate limit window, in seconds |
|
| limits_rate_routes_guild_count | 5 | number | Allowed number of /guild\* requests per user within window |
|
||||||
| limits_rate_routes_webhook_count | 10 | number | Allowed number of /webhooks\* requests per user within window |
|
| limits_rate_routes_guild_window | 5 | number | User /guild\* rate limit window, in seconds |
|
||||||
| limits_rate_routes_webhook_window | 5 | number | User /webhooks\* rate limit window, in seconds |
|
| limits_rate_routes_webhook_count | 10 | number | Allowed number of /webhooks\* requests per user within window |
|
||||||
| limits_rate_routes_channel_count | 10 | number | Allowed number of /channel\* requests per user within window |
|
| limits_rate_routes_webhook_window | 5 | number | User /webhooks\* rate limit window, in seconds |
|
||||||
| limits_rate_routes_channel_window | 5 | number | User /channel\* rate limit window, in seconds |
|
| limits_rate_routes_channel_count | 10 | number | Allowed number of /channel\* requests per user within window |
|
||||||
| limits_rate_routes_auth_login_count | 5 | number | Allowed number of IP /login requests within window |
|
| limits_rate_routes_channel_window | 5 | number | User /channel\* rate limit window, in seconds |
|
||||||
| limits_rate_routes_auth_login_window | 60 | number | IP /login rate limit window, in seconds |
|
| limits_rate_routes_auth_login_count | 5 | number | Allowed number of IP /login requests within window |
|
||||||
| limits_rate_routes_auth_register_count | 2 | number | Allowed number of IP /register requests within window |
|
| limits_rate_routes_auth_login_window | 60 | number | IP /login rate limit window, in seconds |
|
||||||
| limits_rate_routes_auth_register_window | 43200 | number | IP /register rate limit window, in seconds |
|
| limits_rate_routes_auth_register_count | 2 | number | Allowed number of IP /register requests within window |
|
||||||
| limits_absoluteRate_register_limit | 25 | number | Absolute number of registrations instance-wide per window |
|
| limits_rate_routes_auth_register_window | 43200 | number | IP /register rate limit window, in seconds |
|
||||||
| limits_absoluteRate_register_window | 3600000 | number | Global /register rate limit window, in seconds |
|
| limits_absoluteRate_register_limit | 25 | number | Absolute number of registrations instance-wide per window |
|
||||||
| limits_absoluteRate_register_enabled | true | boolean | Whether absolute register rate limits are enabled |
|
| limits_absoluteRate_register_window | 3600000 | number | Global /register rate limit window, in seconds |
|
||||||
| limits_absoluteRate_sendMessage_limit | 200 | number | Absolute number of messages instance-wide per window |
|
| limits_absoluteRate_register_enabled | true | boolean | Whether absolute register rate limits are enabled |
|
||||||
| limits_absoluteRate_sendMessage_window | 60000 | number | Global sendMessage window, in seconds |
|
| limits_absoluteRate_sendMessage_limit | 200 | number | Absolute number of messages instance-wide per window |
|
||||||
| limits_absoluteRate_sendMessage_enabled | true | boolean | Whether absolute message sending rate limits are enabled |
|
| limits_absoluteRate_sendMessage_window | 60000 | number | Global sendMessage window, in seconds |
|
||||||
| [security_captcha_enabled](../security/captcha.md) | false | boolean | Whether to enable captchas for login/register |
|
| limits_absoluteRate_sendMessage_enabled | true | boolean | Whether absolute message sending rate limits are enabled |
|
||||||
| security_captcha_service | null | "recaptcha"/"hcaptcha" | Which captcha service to use |
|
| [security_captcha_enabled](../security/captcha.md) | false | boolean | Whether to enable captchas for login/register |
|
||||||
| security_captcha_sitekey | null | string | Captcha service sitekey |
|
| security_captcha_service | null | "recaptcha"/"hcaptcha" | Which captcha service to use |
|
||||||
| security_captcha_secret | null | string | Captcha service secret |
|
| security_captcha_sitekey | null | string | Captcha service sitekey |
|
||||||
| security_twoFactor_generateBackupCodes | true | boolean | Whether to generate backup codes for MFA users |
|
| security_captcha_secret | null | string | Captcha service secret |
|
||||||
| security_requestSignature | Secret secret | string | The signature required for CDN or [Imagor](imagor.md) usage |
|
| security_twoFactor_generateBackupCodes | true | boolean | Whether to generate backup codes for MFA users |
|
||||||
| security_jwtSecret | Secure secret | string | The secret used for user token generation |
|
| security_requestSignature | Secret secret | string | The signature required for CDN or [Imagor](imagor.md) usage |
|
||||||
| [security_forwadedFor](../reverseProxy.md) | null | string | HTTP header for user's real IP. |
|
| security_jwtSecret | Secure secret | string | The secret used for user token generation |
|
||||||
| security_ipdataApiKey | Fosscord IPdata key | string | API key used for IP geolocation and proxy detection |
|
| [security_forwadedFor](../reverseProxy.md) | null | string | HTTP header for user's real IP. |
|
||||||
| security_mfaBackupCodeCount | 10 | number | Number of MFA backup codes to generate |
|
| security_ipdataApiKey | Fosscord IPdata key | string | API key used for IP geolocation and proxy detection |
|
||||||
| security_statsWorldReadable | true | boolean | Whether instance stats are publically accessible or require right |
|
| security_mfaBackupCodeCount | 10 | number | Number of MFA backup codes to generate |
|
||||||
| security_defaultRegistrationTokenExpiration | 604800000 | number | Seconds for [registration tokens](../security/regTokens.md) to expire |
|
| security_statsWorldReadable | true | boolean | Whether instance stats are publically accessible or require right |
|
||||||
| login_requireCaptcha | false | boolean | Whether login requires captcha verification |
|
| security_defaultRegistrationTokenExpiration | 604800000 | number | Seconds for [registration tokens](../security/regTokens.md) to expire |
|
||||||
| register_email_required | false | boolean | Whether an email is required for registration |
|
| login_requireCaptcha | false | boolean | Whether login requires captcha verification |
|
||||||
| register_email_allowlist | false | boolean | Whether `register_email_domains` is an allowlist |
|
| login_requireVerification | false | boolean | Whether login requires email verification |
|
||||||
| register_email_blocklist | true | boolean | Whether `register_email_domains` is a blocklist |
|
| register_email_required | false | boolean | Whether an email is required for registration |
|
||||||
| register_email_domains | [] | string[] | The email domains list to use as a block/allow list |
|
| register_email_allowlist | false | boolean | Whether `register_email_domains` is an allowlist |
|
||||||
| register_dateOfBirth_required | true | boolean | Whether a date of birth is required for registration |
|
| register_email_blocklist | true | boolean | Whether `register_email_domains` is a blocklist |
|
||||||
| register_dateOfBirth_minimum | 13 | number | The minimum age of registration |
|
| register_email_domains | [] | string[] | The email domains list to use as a block/allow list |
|
||||||
| register_password_required | false | boolean | Whether a password is required for registration |
|
| register_dateOfBirth_required | true | boolean | Whether a date of birth is required for registration |
|
||||||
| register_password_minLength | 8 | number | Minimum password length |
|
| register_dateOfBirth_minimum | 13 | number | The minimum age of registration |
|
||||||
| register_password_minNumbers | 2 | number | Minimum number of number characters in passwords |
|
| register_password_required | false | boolean | Whether a password is required for registration |
|
||||||
| register_password_minUpperCase | 2 | number | Minimum number of uppercase characters in passwords |
|
| register_password_minLength | 8 | number | Minimum password length |
|
||||||
| register_password_minSymbols | 0 | number | Minimum number of symbols in passwords |
|
| register_password_minNumbers | 2 | number | Minimum number of number characters in passwords |
|
||||||
| register_disabled | false | boolean | Whether registration is disabled |
|
| register_password_minUpperCase | 2 | number | Minimum number of uppercase characters in passwords |
|
||||||
| register_requireCaptcha | true | boolean | Whether registration requires captcha verification |
|
| register_password_minSymbols | 0 | number | Minimum number of symbols in passwords |
|
||||||
| register_requireInvite | false | boolean | Whether registration requires a guild invite |
|
| register_disabled | false | boolean | Whether registration is disabled |
|
||||||
| register_guestsRequireInvite | true | boolean | Whether guests accounts require a guild invite |
|
| register_requireCaptcha | true | boolean | Whether registration requires captcha verification |
|
||||||
| register_allowMultipleAccounts | true | boolean | Allow multiple accounts with the same client fingerprint |
|
| register_requireInvite | false | boolean | Whether registration requires a guild invite |
|
||||||
| register_blockProxies | true | boolean | Whether proxies are blocked from registration |
|
| register_guestsRequireInvite | true | boolean | Whether guests accounts require a guild invite |
|
||||||
| register_incrementingDiscriminators | false | boolean | Whether discriminators are random or incrementing |
|
| register_allowMultipleAccounts | true | boolean | Allow multiple accounts with the same client fingerprint |
|
||||||
| [register_defaultRights](../security/rights.md) | 30644591655940 | string | The rights assigned to users _upon registration_ |
|
| register_blockProxies | true | boolean | Whether proxies are blocked from registration |
|
||||||
| regions_default | fosscord | string | The default voice region to use |
|
| register_incrementingDiscriminators | false | boolean | Whether discriminators are random or incrementing |
|
||||||
| regions_useDefaultAsOptimal | true | boolean | Whether to calculate closest or use default as optimal voice region |
|
| [register_defaultRights](../security/rights.md) | 875069521787904 | string | The rights assigned to users _upon registration_ |
|
||||||
| regions_available_0_id | fosscord | string[] | The available voice region IDs |
|
| regions_default | fosscord | string | The default voice region to use |
|
||||||
| regions_available_0_name | Fosscord | string[] | The available voice region names |
|
| regions_useDefaultAsOptimal | true | boolean | Whether to calculate closest or use default as optimal voice region |
|
||||||
| regions_available_0_endpoint | 127.0.0.1:3004 | string[] | The available voice region endpoint URLs |
|
| regions_available_0_id | fosscord | string[] | The available voice region IDs |
|
||||||
| regions_available_0_vip | false | boolean[] | Whether this voice region is VIP exclusive |
|
| regions_available_0_name | Fosscord | string[] | The available voice region names |
|
||||||
| regions_available_0_custom | false | boolean[] | Whether this is a custom voice region (used for events/etc) |
|
| regions_available_0_endpoint | 127.0.0.1:3004 | string[] | The available voice region endpoint URLs |
|
||||||
| regions_available_0_deprecated | false | boolean[] | Whether this is a deprecated voice region (clients avoid these) |
|
| regions_available_0_vip | false | boolean[] | Whether this voice region is VIP exclusive |
|
||||||
| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery should show all guilds |
|
| regions_available_0_custom | false | boolean[] | Whether this is a custom voice region (used for events/etc) |
|
||||||
| guild_discovery_limit | 24 | number | Maximum number of guild discovery elements per page |
|
| regions_available_0_deprecated | false | boolean[] | Whether this is a deprecated voice region (clients avoid these) |
|
||||||
| guild_autoJoin_enabled | true | boolean | Whether users auto join guild(s) on registration |
|
| guild_discovery_showAllGuilds | false | boolean | Whether guild discovery should show all guilds |
|
||||||
| guild_autoJoin_canLeave | true | boolean | Whether users can leave the auto-joined guild(s) |
|
| guild_discovery_limit | 24 | number | Maximum number of guild discovery elements per page |
|
||||||
| [guild_defaultFeatures_0](guildFeatures.md) | null | string | Features automatically granted to guilds upon creation |
|
| guild_autoJoin_enabled | true | boolean | Whether users auto join guild(s) on registration |
|
||||||
| gif_enabled | true | boolean | Whether GIF features are enabled |
|
| guild_autoJoin_canLeave | true | boolean | Whether users can leave the auto-joined guild(s) |
|
||||||
| gif_provider | tenor | "tenor" | Which GIF service to use |
|
| [guild_defaultFeatures_0](guildFeatures.md) | null | string | Features automatically granted to guilds upon creation |
|
||||||
| gif_apiKey | LIVDSRZULELA | string | GIF service API key |
|
| gif_enabled | true | boolean | Whether GIF features are enabled |
|
||||||
| [rabbitmq_host](rabbitmq.md) | null | string | RabbitMQ connection string |
|
| gif_provider | tenor | "tenor" | Which GIF service to use |
|
||||||
| templates_enabled | true | boolean | Whether guild templates are enabled |
|
| gif_apiKey | LIVDSRZULELA | string | GIF service API key |
|
||||||
| templates_allowTemplateCreation | true | boolean | Whether new guild templates can be created |
|
| [rabbitmq_host](rabbitmq.md) | null | string | RabbitMQ connection string |
|
||||||
| templates_allowDiscordTemplates | true | boolean | Whether guild templates from Discord.com can be fetched |
|
| templates_enabled | true | boolean | Whether guild templates are enabled |
|
||||||
| [templates_allowRaws](/concepts/guildTemplates.md) | true | boolean | Whether raw guild templates are allowed |
|
| templates_allowTemplateCreation | true | boolean | Whether new guild templates can be created |
|
||||||
| client_useTestClient | false | boolean | Whether the Discord.com test client is enabled |
|
| templates_allowDiscordTemplates | true | boolean | Whether guild templates from Discord.com can be fetched |
|
||||||
| sentry_enabled | false | boolean | Whether server-side Sentry analytics is enabled |
|
| [templates_allowRaws](/concepts/guildTemplates.md) | true | boolean | Whether raw guild templates are allowed |
|
||||||
| sentry_endpoint | Fosscord sentry endpoint | string | Sentry endpoint |
|
| client_useTestClient | false | boolean | Whether the Discord.com test client is enabled |
|
||||||
| sentry_traceSampleRate | 1 | number | Sentry sample rate (1 means all requests) |
|
| sentry_enabled | false | boolean | Whether server-side Sentry analytics is enabled |
|
||||||
| sentry_environment | System hostname | string | Sentry environment name |
|
| sentry_endpoint | Fosscord sentry endpoint | string | Sentry endpoint |
|
||||||
| defaults_user_premium | false | boolean | Whether users are given premium upon registration |
|
| sentry_traceSampleRate | 1 | number | Sentry sample rate (1 means all requests) |
|
||||||
| defaults_user_premium_type | 2 | number | The premium type given to users upon registration |
|
| sentry_environment | System hostname | string | Sentry environment name |
|
||||||
| defaults_user_verified | true | boolean | Whether users get verified email upon registration |
|
| defaults_user_premium | false | boolean | Whether users are given premium upon registration |
|
||||||
| [external_twitter](embeds.md) | null | string | Twitter API key used for Twitter embeds |
|
| defaults_user_premium_type | 2 | number | The premium type given to users upon registration |
|
||||||
|
| defaults_user_verified | true | boolean | Whether users get verified email upon registration |
|
||||||
|
| [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_smtp_port | null | number | SMTP port |
|
||||||
|
| email_smtp_secure | null | boolean | Use TLS for SMTP |
|
||||||
|
| email_smtp_username | null | string | SMTP username |
|
||||||
|
| email_smtp_password | null | string | SMTP password |
|
||||||
|
| email_mailgun_apiKey | null | string | Mailgun API key |
|
||||||
|
| email_mailgun_domain | null | string | Mailgun domain |
|
||||||
|
| email_mailjet_apiKey | null | string | Mailjet API key |
|
||||||
|
| email_mailjey_apiSecret | null | string | Mailjet API secret |
|
||||||
|
| email_sendgrid_apiKey | null | string | Sendgrid API key |
|
||||||
|
| passwordReset_requireCaptcha | false | boolean | Require captcha to send password reset email |
|
||||||
|
83
docs/setup/server/email.md
Normal file
83
docs/setup/server/email.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# Email
|
||||||
|
|
||||||
|
Fosscord can be configured to send email, to enable the following functionality:
|
||||||
|
|
||||||
|
- Email verification
|
||||||
|
- Password resets
|
||||||
|
- Password change notifications
|
||||||
|
|
||||||
|
Fosscord supports the following email transports:
|
||||||
|
|
||||||
|
- SMTP
|
||||||
|
- [Mailjet](https://www.mailjet.com/)
|
||||||
|
- [Mailgun](https://www.mailgun.com/)
|
||||||
|
- [Sendgrid](https://sendgrid.com/)
|
||||||
|
|
||||||
|
Once you have an account with one of the above services, or an SMTP service, you can begin configuring Fosscord to send mail.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
|
||||||
|
By default users are automatically verified. To change this, update the `defaults_user_verified` [config](configuration/index.md) value to `false`.
|
||||||
|
|
||||||
|
Additionally, if you would like users to be forced to verify their email before using the service, set the `login_requireVerification` config to `true`.
|
||||||
|
|
||||||
|
Lastly, you may force users to pass a CAPTCHA before requesting a password reset by setting `passwordReset_requireCaptcha` to `true`
|
||||||
|
|
||||||
|
!!! warning
|
||||||
|
|
||||||
|
The `general_frontPage` [config](configuration/index.md) value is used to generate verification/password reset links.
|
||||||
|
Be sure to set it to the Fosscord web app URL. For example, `https://staging.fosscord.com`
|
||||||
|
|
||||||
|
## Email Config
|
||||||
|
|
||||||
|
=== "SMTP"
|
||||||
|
|
||||||
|
| key | type | description |
|
||||||
|
| ------------------- | ------- | --------------------------- |
|
||||||
|
| email_smtp_host | string | SMTP Host for sending email |
|
||||||
|
| email_smtp_port | number | SMTP port |
|
||||||
|
| email_smtp_secure | boolean | Use TLS for SMTP |
|
||||||
|
| email_smtp_username | string | SMTP username |
|
||||||
|
| email_smtp_password | string | SMTP password |
|
||||||
|
|
||||||
|
=== "Mailgun"
|
||||||
|
|
||||||
|
| key | type | description |
|
||||||
|
| -------------------- | ------ | --------------- |
|
||||||
|
| email_mailgun_apiKey | string | Mailgun API key |
|
||||||
|
| email_mailgun_domain | string | Mailgun domain |
|
||||||
|
|
||||||
|
=== "Mailjet"
|
||||||
|
|
||||||
|
| key | type | description |
|
||||||
|
| ----------------------- | ------ | ------------------ |
|
||||||
|
| email_mailjet_apiKey | string | Mailjet API key |
|
||||||
|
| email_mailjey_apiSecret | string | Mailjet API secret |
|
||||||
|
|
||||||
|
=== "Sendgrid"
|
||||||
|
|
||||||
|
| key | type | description |
|
||||||
|
| --------------------- | ------ | ---------------- |
|
||||||
|
| email_sendgrid_apiKey | string | Sendgrid API key |
|
||||||
|
|
||||||
|
## Email templates
|
||||||
|
|
||||||
|
Fosscord's email templates are stored in [`fosscord-server/assets/email_templates`](https://github.com/fosscord/fosscord-server/tree/master/assets/email_templates).
|
||||||
|
They are simple HTML files, which you may edit freely. Although HTML mail is very restricted, so a lot of content may not render properly.
|
||||||
|
|
||||||
|
Below are the available strings replaced in mail templates.
|
||||||
|
|
||||||
|
| string | replaced with |
|
||||||
|
| ------------------------ | --------------------------------------------------------- |
|
||||||
|
| `{instanceName}` | `general_instanceName` config value |
|
||||||
|
| `{userUsername}` | The username of the user this email is being sent to |
|
||||||
|
| `{userDiscriminator}` | The discriminator of the user this email is being sent to |
|
||||||
|
| `{userId}` | The ID of the user this email is being sent to |
|
||||||
|
| `{phoneNumber}` | The last 4 digits of the user's phone number. |
|
||||||
|
| `{userEmail}` | The user's email address |
|
||||||
|
| `{emailVerificationUrl}` | The generated email verification URL |
|
||||||
|
| `{passwordResetUrl}` | The generated password reset URL |
|
||||||
|
| `{ipAddress}` | The IP address that requested this email |
|
||||||
|
| `{locationCity}` | The GeoIP city that requested this email |
|
||||||
|
| `{locationRegion}` | The GeoIP region that requested this email |
|
||||||
|
| `{locationCountryName}` | The GeoIP country that requested this email |
|
@ -38,56 +38,57 @@ Operator rights currently grants access to the following, in addition to all rig
|
|||||||
|
|
||||||
## Available rights
|
## Available rights
|
||||||
|
|
||||||
| Right | Value | When enabled |
|
| Right | Value | When enabled |
|
||||||
| ------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| --------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `OPERATOR` | 1 << 0 | All rights |
|
| `OPERATOR` | 1 << 0 | All rights |
|
||||||
| `MANAGE_APPLICATIONS` | 1 << 1 | Ability to alter or remove others' applications |
|
| `MANAGE_APPLICATIONS` | 1 << 1 | Ability to alter or remove others' applications |
|
||||||
| `MANAGE_GUILDS` | 1 << 2 | Same as the per-guild `MANAGE_GUILD` permission, but applies to all guilds and DM channels, can join any guild without invite |
|
| `MANAGE_GUILDS` | 1 << 2 | Same as the per-guild `MANAGE_GUILD` permission, but applies to all guilds and DM channels, can join any guild without invite |
|
||||||
| `MANAGE_MESSAGES` | 1 << 3 | Can delete or edit any message they can read |
|
| `MANAGE_MESSAGES` | 1 << 3 | Can delete or edit any message they can read |
|
||||||
| `MANAGE_RATE_LIMITS` | 1 << 4 | Add, change, define rate limits of other users, can also grant others `BYPASS_RATE_LIMITS` when combined with `BYPASS_RATE_LIMITS` and `MANAGE_USERS` |
|
| `MANAGE_RATE_LIMITS` | 1 << 4 | Add, change, define rate limits of other users, can also grant others `BYPASS_RATE_LIMITS` when combined with `BYPASS_RATE_LIMITS` and `MANAGE_USERS` |
|
||||||
| `MANAGE_ROUTING` | 1 << 5 | Create, alter, enable, disable custom message routing rules in any channel/guild |
|
| `MANAGE_ROUTING` | 1 << 5 | Create, alter, enable, disable custom message routing rules in any channel/guild |
|
||||||
| `MANAGE_TICKETS` | 1 << 6 | Respond to or resolve other users' support tickets |
|
| `MANAGE_TICKETS` | 1 << 6 | Respond to or resolve other users' support tickets |
|
||||||
| `MANAGE_USERS` | 1 << 7 | Create, alter, remove, ban users; create, modify, remove user groups |
|
| `MANAGE_USERS` | 1 << 7 | Create, alter, remove, ban users; create, modify, remove user groups |
|
||||||
| `ADD_MEMBERS` | 1 << 8 | Can manually add members into their guilds and group DMs |
|
| `ADD_MEMBERS` | 1 << 8 | Can manually add members into their guilds and group DMs |
|
||||||
| `BYPASS_RATE_LIMITS` | 1 << 9 | Makes the user exempt from all rate limits |
|
| `BYPASS_RATE_LIMITS` | 1 << 9 | Makes the user exempt from all rate limits |
|
||||||
| `CREATE_APPLICATIONS` | 1 << 10 | Can create, edit, remove own applications |
|
| `CREATE_APPLICATIONS` | 1 << 10 | Can create, edit, remove own applications |
|
||||||
| `CREATE_CHANNELS` | 1 << 11 | Can create guild channels and custom channels |
|
| `CREATE_CHANNELS` | 1 << 11 | Can create guild channels and custom channels |
|
||||||
| `CREATE_DMS` | 1 << 12 | Can create 1:1 DMs (a user without `SEND_MESSAGES` cannot be added however) |
|
| `CREATE_DMS` | 1 << 12 | Can create 1:1 DMs (a user without `SEND_MESSAGES` cannot be added however) |
|
||||||
| `CREATE_DM_GROUPS` | 1 << 13 | Can create group DMs (a user without `SEND_MESSAGES` cannot be added however) |
|
| `CREATE_DM_GROUPS` | 1 << 13 | Can create group DMs (a user without `SEND_MESSAGES` cannot be added however) |
|
||||||
| `CREATE_GUILDS` | 1 << 14 | Can create guilds |
|
| `CREATE_GUILDS` | 1 << 14 | Can create guilds |
|
||||||
| `CREATE_INVITES` | 1 << 15 | Can create mass invites in the guilds that they have `CREATE_INSTANT_INVITE` |
|
| `CREATE_INVITES` | 1 << 15 | Can create mass invites in the guilds that they have `CREATE_INSTANT_INVITE` |
|
||||||
| `CREATE_ROLES` | 1 << 16 | Can create roles and per-guild or per-channel permission overrides in the guilds that they have permissions |
|
| `CREATE_ROLES` | 1 << 16 | Can create roles and per-guild or per-channel permission overrides in the guilds that they have permissions |
|
||||||
| `CREATE_TEMPLATES` | 1 << 17 | Can create templates for guilds, custom channels and channels with custom routing |
|
| `CREATE_TEMPLATES` | 1 << 17 | Can create templates for guilds, custom channels and channels with custom routing |
|
||||||
| `CREATE_WEBHOOKS` | 1 << 18 | Can create webhooks in the guilds that they have permissions |
|
| `CREATE_WEBHOOKS` | 1 << 18 | Can create webhooks in the guilds that they have permissions |
|
||||||
| `JOIN_GUILDS` | 1 << 19 | Can join guilds by using invites or vanity names |
|
| `JOIN_GUILDS` | 1 << 19 | Can join guilds by using invites or vanity names |
|
||||||
| `PIN_MESSAGES` | 1 << 20 | Can modify the pinned messages in the guilds that they have permission |
|
| `PIN_MESSAGES` | 1 << 20 | Can modify the pinned messages in the guilds that they have permission |
|
||||||
| `SELF_ADD_REACTIONS` | 1 << 21 | Can react to messages, subject to permissions |
|
| `SELF_ADD_REACTIONS` | 1 << 21 | Can react to messages, subject to permissions |
|
||||||
| `SELF_DELETE_MESSAGES` | 1 << 22 | Can delete own messages |
|
| `SELF_DELETE_MESSAGES` | 1 << 22 | Can delete own messages |
|
||||||
| `SELF_EDIT_MESSAGES` | 1 << 23 | Can edit own messages |
|
| `SELF_EDIT_MESSAGES` | 1 << 23 | Can edit own messages |
|
||||||
| `SELF_EDIT_NAME` | 1 << 24 | Can edit own username, nickname and avatar |
|
| `SELF_EDIT_NAME` | 1 << 24 | Can edit own username, nickname and avatar |
|
||||||
| `SEND_MESSAGES` | 1 << 25 | Can send messages in the channels that they have permissions |
|
| `SEND_MESSAGES` | 1 << 25 | Can send messages in the channels that they have permissions |
|
||||||
| `USE_ACTIVITIES` | 1 << 26 | Can use voice activities, such as watch together or whiteboard |
|
| `USE_ACTIVITIES` | 1 << 26 | Can use voice activities, such as watch together or whiteboard |
|
||||||
| `USE_VIDEO` | 1 << 27 | Can use video and screenshare in guilds/channels that they have permissions |
|
| `USE_VIDEO` | 1 << 27 | Can use video and screenshare in guilds/channels that they have permissions |
|
||||||
| `USE_VOICE` | 1 << 28 | Can use voice in guilds/channels that they have permissions |
|
| `USE_VOICE` | 1 << 28 | Can use voice in guilds/channels that they have permissions |
|
||||||
| `INVITE_USERS` | 1 << 29 | Can create user-specific invites in guilds that they have `INVITE_USERS` |
|
| `INVITE_USERS` | 1 << 29 | Can create user-specific invites in guilds that they have `INVITE_USERS` |
|
||||||
| `SELF_DELETE_DISABLE` | 1 << 30 | Can delete/disable own account |
|
| `SELF_DELETE_DISABLE` | 1 << 30 | Can delete/disable own account |
|
||||||
| `DEBTABLE` | 1 << 31 | Can use pay-to-use features once paid |
|
| `DEBTABLE` | 1 << 31 | Can use pay-to-use features once paid |
|
||||||
| `CREDITABLE` | 1 << 32 | Can earn money using monetization features in guilds that have `MONETIZATION_ENABLED` |
|
| `CREDITABLE` | 1 << 32 | Can earn money using monetization features in guilds that have `MONETIZATION_ENABLED` |
|
||||||
| `KICK_BAN_MEMBERS` | 1 << 33 | Can kick or ban guild or group DM members in the guilds/groups that they have KICK_MEMBERS, or BAN_MEMBERS |
|
| `KICK_BAN_MEMBERS` | 1 << 33 | Can kick or ban guild or group DM members in the guilds/groups that they have KICK_MEMBERS, or BAN_MEMBERS |
|
||||||
| `SELF_LEAVE_GROUPS` | 1 << 34 | Can leave the guilds or group DMs that they joined on their own (one can always leave a guild or group DMs they have been force-added) |
|
| `SELF_LEAVE_GROUPS` | 1 << 34 | Can leave the guilds or group DMs that they joined on their own (one can always leave a guild or group DMs they have been force-added) |
|
||||||
| `PRESENCE` | 1 << 35 | Inverts the presence confidentiality default (OPERATOR's presence is not routed by default, others' are) for a given user |
|
| `PRESENCE` | 1 << 35 | Inverts the presence confidentiality default (OPERATOR's presence is not routed by default, others' are) for a given user |
|
||||||
| `SELF_ADD_DISCOVERABLE` | 1 << 36 | Can mark discoverable guilds that they have permissions to mark as discoverable |
|
| `SELF_ADD_DISCOVERABLE` | 1 << 36 | Can mark discoverable guilds that they have permissions to mark as discoverable |
|
||||||
| `MANAGE_GUILD_DIRECTORY` | 1 << 37 | Can change anything in the primary guild directory |
|
| `MANAGE_GUILD_DIRECTORY` | 1 << 37 | Can change anything in the primary guild directory |
|
||||||
| `POGGERS` | 1 << 38 | Can send confetti, screenshake, random user mention (@someone) |
|
| `POGGERS` | 1 << 38 | Can send confetti, screenshake, random user mention (@someone) |
|
||||||
| `USE_ACHIEVEMENTS` | 1 << 39 | Can use achievements and cheers |
|
| `USE_ACHIEVEMENTS` | 1 << 39 | Can use achievements and cheers |
|
||||||
| `INITIATE_INTERACTIONS` | 1 << 40 | Can initiate interactions |
|
| `INITIATE_INTERACTIONS` | 1 << 40 | Can initiate interactions |
|
||||||
| `RESPOND_TO_INTERACTIONS` | 1 << 41 | Can respond to interactions |
|
| `RESPOND_TO_INTERACTIONS` | 1 << 41 | Can respond to interactions |
|
||||||
| `SEND_BACKDATED_EVENTS` | 1 << 42 | Can send backdated events |
|
| `SEND_BACKDATED_EVENTS` | 1 << 42 | Can send backdated events |
|
||||||
| `USE_MASS_INVITES` | 1 << 43 | Can accept mass (guild) invites |
|
| `USE_MASS_INVITES` | 1 << 43 | Can accept mass (guild) invites |
|
||||||
| `ACCEPT_INVITES` | 1 << 44 | Can accept user-specific invites and DM requests |
|
| `ACCEPT_INVITES` | 1 << 44 | Can accept user-specific invites and DM requests |
|
||||||
| `SELF_EDIT_FLAGS` | 1 << 45 | Can modify own flags |
|
| `SELF_EDIT_FLAGS` | 1 << 45 | Can modify own flags |
|
||||||
| `EDIT_FLAGS` | 1 << 46 | Can modify other's flags |
|
| `EDIT_FLAGS` | 1 << 46 | Can modify other's flags |
|
||||||
| `MANAGE_GROUPS` | 1 << 47 | Can manage other's groups |
|
| `MANAGE_GROUPS` | 1 << 47 | Can manage other's groups |
|
||||||
| `VIEW_SERVER_STATS` | 1 << 48 | Can view server stats /api/policies/stats |
|
| `VIEW_SERVER_STATS` | 1 << 48 | Can view server stats /api/policies/stats |
|
||||||
|
| `RESEND_VERIFICATION_EMAIL` | 1 << 49 | Can resend verification [emails](../email.md) (`/auth/verify/resend`) |
|
||||||
|
|
||||||
<script src="/assets/js/rightsCalculator.js"></script>
|
<script src="/assets/js/rightsCalculator.js"></script>
|
||||||
|
Loading…
Reference in New Issue
Block a user