1
0
mirror of https://github.com/spacebarchat/docs.git synced 2024-11-08 19:32:30 +01:00

Documentation for fosscord mail

This commit is contained in:
Madeline 2023-02-25 20:57:59 +11:00
parent de1c312690
commit a5b5a3c53c
No known key found for this signature in database
GPG Key ID: 1958E017C36F2E47
3 changed files with 272 additions and 174 deletions

View File

@ -20,7 +20,7 @@ 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 |
@ -32,6 +32,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui
| [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). |
| api_endpointPublic | "/api" | string | See gateway_endpointPublic |
| general_instanceName | Fosscord Instance | string | Announced instance name | | general_instanceName | Fosscord Instance | string | Announced instance name |
| general_instanceDescription | This is a Fosscord instance made in the pre-release days | string | Announced instance description | | general_instanceDescription | This is a Fosscord instance made in the pre-release days | string | Announced instance description |
| general_frontPage | null | string | Announced instance front page | | general_frontPage | null | string | Announced instance front page |
@ -93,6 +94,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui
| security_statsWorldReadable | true | boolean | Whether instance stats are publically accessible or require right | | 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 | Seconds for [registration tokens](../security/regTokens.md) to expire |
| login_requireCaptcha | false | boolean | Whether login requires captcha verification | | 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 | | register_email_required | false | boolean | Whether an email is required for registration |
| register_email_allowlist | false | boolean | Whether `register_email_domains` is an allowlist | | register_email_allowlist | false | boolean | Whether `register_email_domains` is an allowlist |
| register_email_blocklist | true | boolean | Whether `register_email_domains` is a blocklist | | register_email_blocklist | true | boolean | Whether `register_email_domains` is a blocklist |
@ -111,7 +113,7 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui
| register_allowMultipleAccounts | true | boolean | Allow multiple accounts with the same client fingerprint | | register_allowMultipleAccounts | true | boolean | Allow multiple accounts with the same client fingerprint |
| register_blockProxies | true | boolean | Whether proxies are blocked from registration | | register_blockProxies | true | boolean | Whether proxies are blocked from registration |
| register_incrementingDiscriminators | false | boolean | Whether discriminators are random or incrementing | | register_incrementingDiscriminators | false | boolean | Whether discriminators are random or incrementing |
| [register_defaultRights](../security/rights.md) | 30644591655940 | string | The rights assigned to users _upon registration_ | | [register_defaultRights](../security/rights.md) | 875069521787904 | string | The rights assigned to users _upon registration_ |
| regions_default | fosscord | string | The default voice region to use | | regions_default | fosscord | string | The default voice region to use |
| regions_useDefaultAsOptimal | true | boolean | Whether to calculate closest or use default as optimal voice region | | regions_useDefaultAsOptimal | true | boolean | Whether to calculate closest or use default as optimal voice region |
| regions_available_0_id | fosscord | string[] | The available voice region IDs | | regions_available_0_id | fosscord | string[] | The available voice region IDs |
@ -142,3 +144,15 @@ Arrays are represented by \_[number] in a config key. For example, multiple `gui
| defaults_user_premium_type | 2 | number | The premium type given to users upon registration | | 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 | | 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 | | [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 |

View 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 |

View File

@ -39,7 +39,7 @@ 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 |
@ -89,5 +89,6 @@ Operator rights currently grants access to the following, in addition to all rig
| `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>