Open-source mail server for SMBs: IMAP4rev2, JMAP, SMTP, ActiveSync, CalDAV/CardDAV, webmail
10K+
Self-hosted mail server for 10–500 users as an Exchange alternative: no licence fees, no vendor lock-in, full data sovereignty. One application image with all services, plus standard images for PostgreSQL, Redis, MinIO, rspamd and ClamAV.
| Tag | Notes |
|---|---|
5.9.0, latest | English repository, admin CLI coremail, new Docker Compose, EWS tied to MAPI |
5.7.1 | JMAP server, MAPI over HTTP optional |
Platforms: linux/amd64, linux/arm64.
coremail inside the containergit clone https://github.com/MAGPEEK/CoreMail.git && cd CoreMail
bash scripts/setup.sh # generates .env with random keys
docker compose -f infra/docker/docker-compose.yml up -d
Then open http://<server-ip>:3000/bcp/ and run the setup wizard (admin account + domain). Afterwards request a Let's Encrypt certificate in the BCP under SSL/TLS, or via CLI:
docker exec -it coremail coremail cert letsencrypt \
--domains mail.example.com --email [email protected] --services SMTP,IMAP,POP3
.env values| Variable | Purpose |
|---|---|
JWT_SECRET, PEPPER | 64 hex characters each (openssl rand -hex 32) |
POSTGRES_PASSWORD, REDIS_PASSWORD, MINIO_ROOT_PASSWORD | database passwords |
Everything else has sensible defaults. The Compose file aborts with a hint if a required value is missing.
| Port | Service |
|---|---|
| 25 | SMTP inbound |
| 465 / 587 | SMTPS / submission |
| 143 / 993 | IMAP / IMAPS |
| 110 / 995 | POP3 / POP3S (optional) |
| 80 | HTTP (Let's Encrypt challenge, redirect) |
| 443 | HTTPS: webmail, admin panel, JMAP, EWS, ActiveSync, CalDAV, Autodiscover |
| 3000 | HTTP without TLS (initial setup, behind your own reverse proxy) |
docker compose pull coremail && docker compose up -d coremail
Schema changes are applied automatically at container start. Read the release notes before upgrading.
Content type
Image
Digest
sha256:d19deed4b…
Size
307.1 MB
Last updated
4 days ago
docker pull magpeek/coremail-app