Cleanmails Documentation
Cleanmails is a self-hosted cold email infrastructure platform. It combines email validation, multi-step campaign automation, sender rotation, mailbox warmup, AI personalization, and a full outreach CRM — all deployed on your own VPS with a single command. No monthly fees, no usage caps.
Start with the Quick Deploy guide to get up and running in under 10 minutes.
What You Get
Email Validation
120k+ disposable blocklist, MX checks, role detection, scoring
Campaign Automation
Multi-step sequences, A/B variants, scheduling, AI tags
Sender Rotation
Unlimited mailboxes, round-robin rotation, daily limits
Mailbox Warmup
Coordinated pool warmup with auto-reply and spam rescue
AI & MCP
6 providers (OpenAI, Claude, Gemini, Groq, Bedrock, OpenRouter)
Integrations
Webhooks, Slack/Discord/Telegram, HubSpot CRM
Quick Start
Deploy Cleanmails on any Ubuntu/Debian VPS with a single command:
curl -fsSL https://cleanmails.online/install.sh | sudo bash -s -- --domain app.yourdomain.comThis installs Docker, downloads the latest release from S3, builds the container images, generates secure encryption keys, configures Caddy for automatic SSL, and starts the full stack. The whole process takes 2-5 minutes.
Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 22.04 / Debian 12 | Ubuntu 22.04 LTS |
| CPU | 1 vCPU | 4 vCPU |
| RAM | 1 GB | 4 GB |
| Storage | 5 GB SSD | 50 GB SSD |
Architecture Overview
Cleanmails runs as a single Docker Compose stack with six containers:
- API Server — Go (Gin) backend handling all REST endpoints (port 8080 internal)
- Worker — Background job processor (campaign dispatch, IMAP sync, AI replies, warmup, validation)
- Frontend — Next.js React dashboard (port 3000 internal)
- PostgreSQL 16 — Primary database for all application data
- Redis 7 — Task queue (Asynq) and caching layer
- Caddy — Reverse proxy with automatic Let's Encrypt SSL (ports 80/443)
All data is stored in PostgreSQL with workspace-level isolation. Redis powers the Asynq background job system with priority queues (critical, default, low). Backups use pg_dump with automatic rotation.
Support
Need help? Reach out via the support page or use the AI Copilot built into your dashboard for instant answers about your workspace.