Skip to main content

Email Setup

Configure email to enable user invitations, password resets, and email verification.

Why Email?

Email configuration enables:

  • User Invitations - Invite users via email from the Admin Panel
  • Password Reset - Allow users to reset forgotten passwords
  • Email Verification - Verify new user email addresses (optional)
Without Email

If email is not configured:

  • The "Invite User" button is replaced with "Create User" in the Admin Panel
  • You can create users directly by providing username and password
  • Password reset functionality will be unavailable (users must change passwords while logged in via Profile menu)
  • See User Management for creating users without email

Setting Up Resend

BillManager uses Resend for transactional emails.

1. Create a Resend Account

  1. Go to resend.com and sign up
  2. Verify your email address
  3. Navigate to API Keys in the dashboard

2. Create an API Key

  1. Click "Create API Key"
  2. Give it a name (e.g., "BillManager Production")
  3. Select "Full access" permissions
  4. Copy the API key (starts with re_)

For production, add and verify your domain:

  1. Go to Domains in Resend
  2. Add your domain (e.g., yourdomain.com)
  3. Add the DNS records Resend provides
  4. Wait for verification

4. Configure BillManager

Add these environment variables to your docker-compose.yml:

environment:
- RESEND_API_KEY=re_your_api_key_here
- [email protected]
- APP_URL=https://bills.yourdomain.com
VariableDescription
RESEND_API_KEYYour Resend API key
FROM_EMAILThe sender email address (must be from your verified domain in production)
APP_URLYour BillManager URL (used in email links)

Testing Email

After configuration, test that emails work:

  1. Log in as admin
  2. Go to Admin Panel → Users
  3. Click "Invite User"
  4. Enter your own email address
  5. Check that you receive the invitation

Troubleshooting

"Invite User" Button Not Visible

  • RESEND_API_KEY is not set or is invalid
  • Restart the container after adding the environment variable

Emails Not Received

  1. Check the Resend dashboard for delivery status
  2. Verify FROM_EMAIL matches a verified domain
  3. Check spam/junk folders
  4. Verify APP_URL is correct (links in emails use this)

Invalid API Key

  • Ensure the key starts with re_
  • Check for extra whitespace when copying
  • Verify the key hasn't been revoked in Resend dashboard

Using a Different Email Provider

BillManager currently only supports Resend. If you need a different provider, you can:

  1. Open an issue on GitHub requesting support
  2. Fork the project and modify apps/server/email.py