diff --git a/MAILING_DOMAIN.md b/MAILING_DOMAIN.md new file mode 100644 index 00000000..04d8f3b5 --- /dev/null +++ b/MAILING_DOMAIN.md @@ -0,0 +1,54 @@ +# Mailing Domain Configuration + +This feature allows you to configure a separate domain specifically for email templates and links, while keeping your main `DOMAIN` setting for internal server access. + +## Configuration + +### Environment Variable +Set the `MAILING_DOMAIN` environment variable: +```bash +MAILING_DOMAIN=https://public.example.com +``` + +### Docker Environment +Add to your docker-compose.yml or docker run command: +```yaml +environment: + - MAILING_DOMAIN=https://public.example.com +``` + +Or with docker run: +```bash +docker run -e MAILING_DOMAIN=https://public.example.com vaultwarden/server +``` + +### Admin Panel +The mailing domain can also be configured through the admin panel under SMTP Email Settings. + +## Use Cases + +1. **Internal vs Public Access**: Your Vaultwarden server runs on an internal domain (e.g., `http://vaultwarden.internal`) but you want emails to contain links to a public domain (e.g., `https://vault.company.com`). + +2. **Development vs Production**: Use different domains for email links in development and production environments. + +3. **Load Balancer/Proxy**: Your server runs behind a load balancer with a different internal address than the public-facing URL. + +## Behavior + +- If `MAILING_DOMAIN` is set, all email templates will use this domain for links and references +- If `MAILING_DOMAIN` is not set, the system falls back to using the main `DOMAIN` setting +- This affects all email types: invitations, password resets, 2FA emails, notifications, etc. + +## Example + +```bash +# Main domain for server operations +DOMAIN=http://vaultwarden.internal:8080 + +# Public domain for email links +MAILING_DOMAIN=https://vault.company.com +``` + +With this configuration: +- The server operates on `http://vaultwarden.internal:8080` +- All email links will point to `https://vault.company.com` \ No newline at end of file