From fccf0f1e3949efe80f00c9dcc4b20a8dc92be303 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Fri, 28 Feb 2025 17:06:21 +0100 Subject: [PATCH] docs: add smtp configuration page for self-hosters (#4833) --- docs/mint.json | 1 + docs/self-hosting/configuration/smtp.mdx | 136 +++++++++++++++++++++++ packages/lib/messages/de-DE.json | 6 - packages/lib/messages/en-US.json | 6 - packages/lib/messages/fr-FR.json | 6 - packages/lib/messages/pt-BR.json | 6 - packages/lib/messages/zh-Hant-TW.json | 6 - 7 files changed, 137 insertions(+), 30 deletions(-) create mode 100644 docs/self-hosting/configuration/smtp.mdx diff --git a/docs/mint.json b/docs/mint.json index 5674caa8e4..c059ba5900 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -255,6 +255,7 @@ "pages": [ "self-hosting/configuration/custom-ssl", "self-hosting/configuration/environment-variables", + "self-hosting/configuration/smtp", { "group": "Auth & SSO", "icon": "lock", diff --git a/docs/self-hosting/configuration/smtp.mdx b/docs/self-hosting/configuration/smtp.mdx new file mode 100644 index 0000000000..d739becec7 --- /dev/null +++ b/docs/self-hosting/configuration/smtp.mdx @@ -0,0 +1,136 @@ +--- +title: "SMTP Configuration" +description: "Set up email functionality for your self-hosted Formbricks instance" +icon: "envelope" +--- + +By default, Formbricks doesn't include an SMTP server for sending emails. However, you can easily configure your self-hosted instance to use your own email provider through environment variables. + +## Why Configure SMTP? + +Setting up an SMTP server enables important email functionality in Formbricks, including: + +- Email verification for new accounts +- Password reset emails +- Team member invitation emails +- Survey response notifications + +## Email Configuration Options + +Formbricks uses Nodemailer to send emails and supports various SMTP providers like: + +- AWS SES +- SendGrid +- Mailgun +- Gmail (for low volume) +- Custom SMTP servers +- Other SMTP providers + +## Required Environment Variables + +To enable email functionality, configure the following environment variables: + +```bash +# Basic SMTP Configuration +MAIL_FROM=noreply@yourdomain.com +SMTP_HOST=smtp.yourprovider.com +SMTP_PORT=587 +SMTP_USER=your_username +SMTP_PASSWORD=your_password +``` + +Additional optional settings: + +```bash +# Enable SMTP_SECURE_ENABLED for TLS (port 465) +SMTP_SECURE_ENABLED=0 + +# If set to 0, the server won't require authentication +SMTP_AUTHENTICATED=1 + +# If set to 0, the server will accept connections without requiring +# authorization from the list of supplied CAs (default is 1) +SMTP_REJECT_UNAUTHORIZED_TLS=0 +``` + +## Enabling Email Features + +By default, email verification and password reset features are **disabled** in Formbricks. To enable these features: + +```bash +# Set to 0 to enable email verification (requires working SMTP) +EMAIL_VERIFICATION_DISABLED=0 + +# Set to 0 to enable password reset functionality (requires working SMTP) +PASSWORD_RESET_DISABLED=0 +``` + +## Configuration for One-Click Setup + +If you're using the one-click setup with Docker Compose, you can either: + +1. Edit the docker-compose.yml file and add the SMTP environment variables: + +```yaml +environment: + # Email Configuration + MAIL_FROM: noreply@yourdomain.com + SMTP_HOST: smtp.yourprovider.com + SMTP_PORT: 587 + SMTP_USER: your_username + SMTP_PASSWORD: your_password + EMAIL_VERIFICATION_DISABLED: 0 + PASSWORD_RESET_DISABLED: 0 +``` + +2. Or during the setup, answer "Yes" when prompted to set up the email service: + +``` +📧 Do you want to set up the email service? You will need SMTP credentials for the same! [y/N] y +``` + +## Provider-Specific Examples + +### SendGrid + +```bash +MAIL_FROM=noreply@yourdomain.com +SMTP_HOST=smtp.sendgrid.net +SMTP_PORT=587 +SMTP_USER=apikey +SMTP_PASSWORD=your_sendgrid_api_key +``` + +### AWS SES + +```bash +MAIL_FROM=noreply@yourdomain.com +SMTP_HOST=email-smtp.us-east-1.amazonaws.com +SMTP_PORT=587 +SMTP_USER=your_ses_access_key +SMTP_PASSWORD=your_ses_secret_key +``` + +### Gmail + +```bash +MAIL_FROM=your_email@gmail.com +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_USER=your_email@gmail.com +SMTP_PASSWORD=your_app_password +``` + +> **Note**: For Gmail, you need to use an App Password if you have 2FA enabled. + +## Troubleshooting + +If you're experiencing issues with your email configuration: + +1. Check that all required environment variables are set correctly +2. Verify your SMTP credentials are valid +3. Ensure your email provider allows sending from the specified MAIL_FROM address +4. If using Gmail, ensure you're using an App Password +5. For secure connections, make sure you've set the correct port and SMTP_SECURE_ENABLED value + +For additional help, join the conversation on [GitHub Discussions](https://github.com/formbricks/formbricks/discussions). diff --git a/packages/lib/messages/de-DE.json b/packages/lib/messages/de-DE.json index 7964d76c34..311dca394e 100644 --- a/packages/lib/messages/de-DE.json +++ b/packages/lib/messages/de-DE.json @@ -6,7 +6,6 @@ "continue_with_google": "Login mit Google", "continue_with_oidc": "Weiter mit {oidcDisplayName}", "continue_with_openid": "Login mit OpenID", - "continue_with_saml": "Login mit SAML SSO", "forgot-password": { "back_to_login": "Zurück zum Login", "email-sent": { @@ -53,7 +52,6 @@ "new_to_formbricks": "Neu bei Formbricks?", "use_a_backup_code": "Einen Backup-Code verwenden" }, - "saml_connection_error": "Etwas ist schiefgelaufen. Bitte überprüfe die App-Konsole für weitere Details.", "signup": { "captcha_failed": "reCAPTCHA fehlgeschlagen", "have_an_account": "Hast Du ein Konto?", @@ -1857,10 +1855,6 @@ "smileys_description": "Verwende visuelle Indikatoren, um Feedback an allen Kundenkontaktpunkten zu erfassen." } }, - "health": { - "degraded": "Es scheint ein Problem zu geben :(", - "healthy": "Alle Systeme laufen und sind betriebsbereit" - }, "organizations": { "landing": { "no_projects_warning_subtitle": "Wenden Sie sich an den Eigentümer Ihrer Organisation, um Zugriff auf Projekte zu erhalten. Oder erstellen Sie eine eigene Organisation, um loszulegen.", diff --git a/packages/lib/messages/en-US.json b/packages/lib/messages/en-US.json index a13737b455..1f8c7aaa22 100644 --- a/packages/lib/messages/en-US.json +++ b/packages/lib/messages/en-US.json @@ -6,7 +6,6 @@ "continue_with_google": "Continue with Google", "continue_with_oidc": "Continue with {oidcDisplayName}", "continue_with_openid": "Continue with OpenID", - "continue_with_saml": "Continue with SAML SSO", "forgot-password": { "back_to_login": "Back to login", "email-sent": { @@ -53,7 +52,6 @@ "new_to_formbricks": "New to Formbricks?", "use_a_backup_code": "Use a backup code" }, - "saml_connection_error": "Something went wrong. Please check your app console for more details.", "signup": { "captcha_failed": "Captcha failed", "have_an_account": "Have an account?", @@ -1857,10 +1855,6 @@ "smileys_description": "Use visual indicators to capture feedback across customer touchpoints." } }, - "health": { - "degraded": "Your Formbricks health is degraded", - "healthy": "All systems are up and running" - }, "organizations": { "landing": { "no_projects_warning_subtitle": "Reach out to your organization owner to get access to projects. Or create an own organization to get started.", diff --git a/packages/lib/messages/fr-FR.json b/packages/lib/messages/fr-FR.json index 242f4b6803..53d0f38369 100644 --- a/packages/lib/messages/fr-FR.json +++ b/packages/lib/messages/fr-FR.json @@ -6,7 +6,6 @@ "continue_with_google": "Continuer avec Google", "continue_with_oidc": "Continuer avec {oidcDisplayName}", "continue_with_openid": "Continuer avec OpenID", - "continue_with_saml": "Continuer avec SAML SSO", "forgot-password": { "back_to_login": "Retour à la connexion", "email-sent": { @@ -53,7 +52,6 @@ "new_to_formbricks": "Nouveau sur Formbricks ?", "use_a_backup_code": "Utiliser un code de secours" }, - "saml_connection_error": "Quelque chose s'est mal passé. Veuillez vérifier la console de votre application pour plus de détails.", "signup": { "captcha_failed": "Captcha échoué", "have_an_account": "Avez-vous un compte ?", @@ -1857,10 +1855,6 @@ "smileys_description": "Utilisez des indicateurs visuels pour recueillir des retours d'expérience à travers les points de contact avec les clients." } }, - "health": { - "degraded": "La santé de votre Formbricks est dégradée.", - "healthy": "Tous les systèmes sont opérationnels." - }, "organizations": { "landing": { "no_projects_warning_subtitle": "Contactez le propriétaire de votre organisation pour obtenir l'accès aux projets. Ou créez votre propre organisation pour commencer.", diff --git a/packages/lib/messages/pt-BR.json b/packages/lib/messages/pt-BR.json index cf828c4021..35d11a717d 100644 --- a/packages/lib/messages/pt-BR.json +++ b/packages/lib/messages/pt-BR.json @@ -6,7 +6,6 @@ "continue_with_google": "Continuar com o Google", "continue_with_oidc": "Continuar com {oidcDisplayName}", "continue_with_openid": "Continuar com OpenID", - "continue_with_saml": "Continuar com SAML SSO", "forgot-password": { "back_to_login": "Voltar para o login", "email-sent": { @@ -53,7 +52,6 @@ "new_to_formbricks": "Novo no Formbricks?", "use_a_backup_code": "Usar um código de backup" }, - "saml_connection_error": "Algo deu errado. Por favor, verifica o console do app para mais detalhes.", "signup": { "captcha_failed": "reCAPTCHA falhou", "have_an_account": "Já tem uma conta?", @@ -1857,10 +1855,6 @@ "smileys_description": "Use indicadores visuais pra captar feedback em todos os pontos de contato com o cliente." } }, - "health": { - "degraded": "A saúde do seu Formbricks está degradada", - "healthy": "Todos os sistemas estão funcionando" - }, "organizations": { "landing": { "no_projects_warning_subtitle": "Entre em contato com o proprietário da sua organização para obter acesso aos projetos. Ou crie uma organização própria para começar.", diff --git a/packages/lib/messages/zh-Hant-TW.json b/packages/lib/messages/zh-Hant-TW.json index 3b2083a0c2..ae6613519a 100644 --- a/packages/lib/messages/zh-Hant-TW.json +++ b/packages/lib/messages/zh-Hant-TW.json @@ -6,7 +6,6 @@ "continue_with_google": "使用 Google 繼續", "continue_with_oidc": "使用 '{'oidcDisplayName'}' 繼續", "continue_with_openid": "使用 OpenID 繼續", - "continue_with_saml": "使用 SAML SSO 繼續", "forgot-password": { "back_to_login": "返回登入", "email-sent": { @@ -53,7 +52,6 @@ "new_to_formbricks": "初次使用 Formbricks?", "use_a_backup_code": "使用備份碼" }, - "saml_connection_error": "發生錯誤。請檢查您的 app 主控台以取得更多詳細資料。", "signup": { "captcha_failed": "驗證碼失敗", "have_an_account": "已有帳戶?", @@ -1857,10 +1855,6 @@ "smileys_description": "使用視覺指標來擷取客戶接觸點的回饋。" } }, - "health": { - "degraded": "您的 Formbricks 運作狀況已降低", - "healthy": "所有系統都已啟動並執行" - }, "organizations": { "landing": { "no_projects_warning_subtitle": "請聯絡您的組織擁有者以取得專案存取權限。或建立自己的組織以開始使用。",