Overview
Discover what makes Cyrus IMAP powerful
Cyrus IMAP is a high‑performance, enterprise‑grade mail server that exposes the full suite of email, contacts, and calendar protocols (IMAP, POP3, NNTP, JMAP, CalDAV, CardDAV, WebDAV). Unlike consumer‑oriented IMAP daemons that run on user‑visible accounts, Cyrus is designed for “sealed” servers: the mailbox storage lives in protected filesystem directories and all user access is mediated through authenticated protocols. This architecture enables fine‑grained ACLs, per‑hierarchy quotas, and concurrent read/write sessions without locking contention, making it a natural fit for large, multi‑tenant deployments.
Sealed storage model
Concurrent access
ACLs & quotas
Protocol breadth
Overview
Cyrus IMAP is a high‑performance, enterprise‑grade mail server that exposes the full suite of email, contacts, and calendar protocols (IMAP, POP3, NNTP, JMAP, CalDAV, CardDAV, WebDAV). Unlike consumer‑oriented IMAP daemons that run on user‑visible accounts, Cyrus is designed for “sealed” servers: the mailbox storage lives in protected filesystem directories and all user access is mediated through authenticated protocols. This architecture enables fine‑grained ACLs, per‑hierarchy quotas, and concurrent read/write sessions without locking contention, making it a natural fit for large, multi‑tenant deployments.
Key Features
- Sealed storage model – mailboxes are stored in privileged directories, preventing accidental user tampering and simplifying backup/replication.
- Concurrent access – multiple IMAP clients can read/write the same mailbox simultaneously, thanks to a lock‑free storage engine.
- ACLs & quotas – per‑mailbox access control lists and hierarchical quota enforcement.
- Protocol breadth – native support for IMAP, POP3, NNTP, JMAP, CalDAV, CardDAV, and WebDAV.
- Sieve filtering – robust server‑side mail routing with a modular plugin system.
- Security stack – Cyrus SASL integration, TLS termination, and support for SPF/DKIM/Dmarc processing.
Technical Stack
- Language – Core server written in C, with extensive use of POSIX APIs for file I/O and networking.
- Storage – A custom binary mailbox format that uses memory‑mapped files for fast random access; optional integration with
mmapandposix_fadvise. - Authentication – Cyrus SASL framework, supporting plain, login, cram‑md5, DIGEST-MD5, GSSAPI (Kerberos), and external mechanisms.
- Database – No external DB required; metadata is stored in flat files (
.sieve,.quota, ACL tables). Optional LDAP integration for user/alias resolution. - Build system – Autoconf/Automake with optional CMake support; OpenSSL for TLS, libzlib for compression.
Deployment & Infrastructure
- Self‑hosting – Packages exist for every major distribution (Fedora, RHEL, Debian, Ubuntu, openSUSE). The source tree can be built from tarballs or git for custom patches.
- Scalability – Designed to run on large Linux clusters; supports multi‑CPU cores, high I/O throughput, and can be paired with replication tools (e.g.,
cyrus-mboxreplication daemon). - Containerization – Official Docker images are available, but the server’s privileged filesystem layout requires careful volume mapping. Production deployments typically use systemd units with dedicated
cyrususer/group. - High‑availability – Replication can be achieved via
cyrus-mbox’s built‑in replication or external tools like rsync/DRBD; the sealed storage model simplifies failover.
Integration & Extensibility
- Sieve plugins – Modular filtering actions (fileinto, redirect, notify) that can be extended with custom C modules.
- JMAP API – Full JSON‑based mailbox access, enabling modern web clients to interact without IMAP.
- WebDAV & CalDAV/CardDAV – Expose calendar and address book data; integration with tools like
davmailor native clients. - Hooks – Post‑delivery and pre‑fetch hooks allow custom scripts to run on mail arrival or before client fetch.
- LDAP/SQL backends – User and alias resolution can be delegated to LDAP or SQL databases via the
cyrus-authmodule.
Developer Experience
- Configuration – Declarative
cyrus.conf, ACL files, and SASL maps are human‑readable; extensive templated defaults in/etc/cyrus.conf.d. - Documentation – Comprehensive HTML docs (
doc/html) covering installation, tuning, and API reference; online atcyrusimap.org. - Community – Active mailing lists, IRC channel (
#cyrus), and GitHub issue tracker; contributors regularly patch performance and security bugs. - Testing – CI pipeline with GitHub Actions runs unit tests, integration tests against a mock MTA, and security checks.
Use Cases
- University mail systems – Sealed storage protects student data while allowing shared calendars and contacts.
- Enterprise IMAP/CalDAV – Centralized mailbox with fine‑grained ACLs for departments and projects.
- Email archiving – Efficient, lock‑free storage is ideal for long‑term retention and compliance.
- Custom webmail stacks – JMAP support enables modern SPA clients without IMAP emulation.
- Hybrid MTA deployments – Acts as a delivery agent for Postfix/Dovecot, providing advanced filtering and anti‑spam hooks.
Advantages Over Alternatives
| Criterion | Cyrus | Competitors (Dovecot, Postfix) |
|---|---|---|
| Sealed storage | ✔︎ | ❌ (user‑visible FS) |
| Concurrent read/write | ✔︎ | ❌ (locking overhead) |
| ACL & quota granularity | ✔︎ | Partial |
| Protocol breadth | ✔︎ (IMAP, POP3, NNTP, JMAP, CalDAV/CardDAV) | Limited |
| Open source license | GPL‑2.0 | GPL‑2.0 / BSD |
| Scalability | Enterprise‑grade (10k |
Open SourceReady to get started?
Join the community and start self-hosting Cyrus IMAP today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
SQLPage
Build data‑centric web apps with pure SQL
ownCloud
Secure, self‑hosted file sharing and collaboration
ChartDB
Instant database diagramming and migration without passwords
Pomerium
Zero‑trust, clientless access to internal apps
bin
Minimalist paste bin in Rust
PocketBase
Lightweight Go backend in a single file