Self-hosted disposable email service.
Generate temporary email addresses instantly. No sign-up. No tracking. Auto-expiring.
Documentation · Features · Quick Start · License
docker compose up to run the entire stackCloakMail ships with two deployment paths. Pick the one that fits your situation:
| Deployment | Good for | Cost |
|---|---|---|
| Docker / VPS | Full control, self-hosted servers, on-prem | Your server costs |
| Cloudflare Workers | Zero servers to manage, global edge, free tier | $0 on the free tier (up to ~100k emails/day) |
Pull and run directly from GitHub Container Registry:
# Create a docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/DreamsHive/cloakmail/main/docker-compose.yml -o docker-compose.yml
# Set your domain
export DOMAIN=yourdomain.com
# Start all services
docker compose up -d
Or use the GHCR images directly:
docker pull ghcr.io/dreamshive/cloakmail-server:latest
docker pull ghcr.io/dreamshive/cloakmail-web:latest
The web UI will be available at http://localhost:5173 and the API at http://localhost:3000.
| Variable | Default | Description |
|---|---|---|
DOMAIN |
localhost |
Email domain for receiving mail |
APP_NAME |
CloakMail |
App name displayed in the UI |
EMAIL_TTL_SECONDS |
86400 |
Time before emails auto-delete |
SMTP_PORT |
25 |
SMTP server port |
API_PORT |
3000 |
REST API port |
API_URL |
http://server:3000 |
Overrides PUBLIC_API_URL for the web container — useful for split deployments or reverse-proxy setups |
See .env.example for all available options.
Run CloakMail entirely on Cloudflare's free tier — no servers, no Docker, no ssh. One command from any directory on your machine:
bunx cloakmail-cli setup
The cloakmail-cli wizard handles the entire deployment end-to-end: it fetches this repo's release tarball, prompts for your Cloudflare API token + domain + hostname, provisions D1 and R2, deploys both Workers, configures Email Routing, binds your custom domain, and verifies the whole thing — in about two minutes.
Prerequisites:
bunx)What you get:
https://inbox.yourdomain.com)*@yourdomain.com lands in a disposable inboxThe Docker and Cloudflare paths are fully independent — pick whichever fits your setup, or even run both for different domains.
For full setup guides, API reference, and deployment instructions, visit the official documentation at docs.cloakmail.dev.
This project is licensed under the MIT License.