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
- Go to resend.com and sign up
- Verify your email address
- Navigate to API Keys in the dashboard
2. Create an API Key
- Click "Create API Key"
- Give it a name (e.g., "BillManager Production")
- Select "Full access" permissions
- Copy the API key (starts with
re_)
3. Add Domain (Recommended)
For production, add and verify your domain:
- Go to Domains in Resend
- Add your domain (e.g.,
yourdomain.com) - Add the DNS records Resend provides
- 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
| Variable | Description |
|---|---|
RESEND_API_KEY | Your Resend API key |
FROM_EMAIL | The sender email address (must be from your verified domain in production) |
APP_URL | Your BillManager URL (used in email links) |
Testing Email
After configuration, test that emails work:
- Log in as admin
- Go to Admin Panel → Users
- Click "Invite User"
- Enter your own email address
- Check that you receive the invitation
Troubleshooting
"Invite User" Button Not Visible
RESEND_API_KEYis not set or is invalid- Restart the container after adding the environment variable
Emails Not Received
- Check the Resend dashboard for delivery status
- Verify
FROM_EMAILmatches a verified domain - Check spam/junk folders
- Verify
APP_URLis 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:
- Open an issue on GitHub requesting support
- Fork the project and modify
apps/server/email.py