Private Brevo mail console — compose, preview, attachments, and send history
570
Private Brevo mail console — compose, preview, attachments, and send history
GitHub • Docker Hub • Docs • Live demo
Custom Mail is a self-hosted outbound mail workspace. Run it locally in Docker to try the UI, or deploy the same Rust Worker to Cloudflare for production.
workers-rs → WASM) inside a slim imagedocker pull xuxuclassmate/custom-mail:latest
Also on GHCR: ghcr.io/innonestx/custom-mail:latest
You need at least a console password. Add a Brevo API key when you want to actually send mail.
export ADMIN_PASSWORD='choose-a-strong-password'
export BREVO_API_KEY='xkeysib-...' # optional for UI-only testing
export PORT=8787 # optional, default 8787
Get a Brevo key from Brevo → SMTP & API.
Foreground (good for a quick try):
docker run --rm -p 8787:8787 \
-e ADMIN_PASSWORD="$ADMIN_PASSWORD" \
-e BREVO_API_KEY="$BREVO_API_KEY" \
xuxuclassmate/custom-mail:latest
Background:
docker run -d \
--name custom-mail \
-p 8787:8787 \
-e ADMIN_PASSWORD="$ADMIN_PASSWORD" \
-e BREVO_API_KEY="$BREVO_API_KEY" \
xuxuclassmate/custom-mail:latest
Open http://localhost:8787 and sign in with ADMIN_PASSWORD.
Quick health check:
curl -s http://localhost:8787/api/health
# {"ok":true,"runtime":"rust","service":"mail",...}
Clone the repo if you want the bundled docker-compose.yml:
git clone https://github.com/InnoNestX/Custom-Mail.git
cd Custom-Mail
export ADMIN_PASSWORD='choose-a-strong-password'
export BREVO_API_KEY='xkeysib-...'
docker compose up -d
Stop the service:
docker compose down
| Variable | Default | Description |
|---|---|---|
ADMIN_PASSWORD | (required) | Login password for the mail console |
BREVO_API_KEY | empty | Brevo API key (xkeysib-…). UI works without it; send fails until set |
PORT | 8787 | Port Wrangler listens on inside the container |
The image sets ALLOW_ANY_HOST=1 so local Docker works without tweaking Host headers.
Product copy, colors, login text, and address book live in config/mail.json inside the image. For production on Cloudflare, edit that file in the repo and redeploy — see the config guide.
xuxuclassmate/custom-mail:latestxuxuclassmate/custom-mail:0.2.0ghcr.io/innonestx/custom-mail:latestghcr.io/innonestx/custom-mail:0.2.0clawhub install custom-mail
Content type
Image
Digest
sha256:3aa991536…
Size
141.7 MB
Last updated
1 day ago
docker pull xuxuclassmate/custom-mail