Getting Started¶
Everything you need to go from zero to a running Mailyte email server — install it, configure it, and send your first email in under 15 minutes.
What is Mailyte?¶
Mailyte is a self-hosted email platform. It bundles Postfix (SMTP), Dovecot (IMAP/POP3), Rspamd (spam filtering), a FastAPI REST API, and a collection of worker services into a single Docker Compose stack. You bring a server, a domain, and DNS access. Mailyte handles the rest.
flowchart LR
You["You 🧑💻"] -->|"docker compose up"| Stack["Mailyte Stack"]
Stack --> SMTP["Send Email<br>Postfix"]
Stack --> IMAP["Read Email<br>Dovecot"]
Stack --> API["Control Plane<br>FastAPI REST API"]
Stack --> Spam["Spam Filter<br>Rspamd"]
style Stack fill:#4051b5,color:#fff In this section¶
-
Installation
Clone the repo, configure
.env, rundocker compose up, and verify every container is healthy. -
Configuration
Understand the environment variables that control database connections, mail routing, security, feature flags, and worker behaviour.
-
First Steps
Create an organization, add a domain, provision a mailbox, and send a test email through the API.
-
Troubleshooting
Diagnostic commands, common pitfalls, log locations, and the fastest way to figure out what went wrong.
Quick-start checklist¶
Use this as a high-level roadmap. Each step links to its own page with full details.
- Install the server -- clone the repo, configure
.env, rundocker compose up. - Review configuration -- understand the environment variables that control database, mail routing, security, and feature flags.
- Take your first steps -- create an organization, add a domain, create a mailbox, send a test email.
- Know how to troubleshoot -- learn the diagnostic commands that save you hours when something goes wrong.
What you will end up with¶
After completing this section you will have:
- Every container running and healthy.
- An organization and domain registered through the API.
- A working mailbox that can send and receive mail.
- Familiarity with the logs and health checks you will use day-to-day.
Prerequisites at a glance¶
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Linux (Ubuntu 20.04+ or similar) | Ubuntu 22.04 LTS |
| Docker | 20.10+ | Latest stable |
| Docker Compose | v2.0+ | v2.20+ |
| RAM | 4 GB | 8 GB+ |
| Disk | 50 GB | 100 GB+ SSD |
| Domain | One domain with DNS control | -- |
| Ports open | 25, 143, 465, 587, 993 | All mail + API ports |
Port 25 matters
Many cloud providers block outbound port 25 by default. Check with your hosting provider before you start — you may need to request that the block be lifted. Without port 25, your server can receive email but cannot deliver it to other servers.
The Installation page covers prerequisites in full.
Architecture at a glance¶
Mailyte is made up of three layers:
Postfix handles SMTP (ports 25, 587, 465). Dovecot handles IMAP/POP3 (ports 143, 993, 110, 995). Rspamd sits between them filtering spam.
A FastAPI application on port 5000 is the control plane. Worker services handle tracking, webhooks, rate limiting, analytics, RAG/AI search, queue management, storage, backup, and cloud sync.
MySQL stores configuration and metadata. Redis provides caching and pub/sub for the workers. Qdrant stores vector embeddings for AI-powered email search.
Don't worry about memorizing all of this
The Architecture section covers every service in detail. Right now, you just need to get the stack running.
Capabilities overview¶
| Capability | What you get |
|---|---|
| Send & receive email | Full SMTP, IMAP, and POP3 support via Postfix and Dovecot |
| REST API | Manage everything programmatically — orgs, domains, mailboxes, aliases |
| Spam filtering | ML-based spam detection, Bayesian filtering, ClamAV antivirus |
| Multi-tenant | Host multiple organizations with fully isolated data and quotas |
| Email tracking | Open tracking, click tracking, bounce and complaint logging |
| Webhooks | Real-time event delivery with retry and HMAC signing |
| AI search | Semantic search over email content with Qdrant vector DB |
| Auto-healing | Health monitor detects failed services and restarts them |
| Backups | Automated database and filesystem backups with S3/Azure sync |
Where to go next¶
Start here
Head to the Installation guide. It takes about ten minutes if you already have Docker installed.
Related sections:
- Architecture -- understand how the system is put together
- API Reference -- explore the REST API once your server is running
- Features -- see everything Mailyte can do
- Security -- harden your deployment before going live