Yarilo Documentation
Yarilo is a mail server written in Go and built for Kubernetes. It serves IMAP, POP3, LMTP, Submission, JMAP and ManageSieve, filters mail with Sieve, and stores it in maildir, sdbox or mdbox.
One set of binaries covers every shape, from a single node to a director ring in front of several backends. Moving between shapes is a change to the configuration, not to the software.
Getting a server running
- Installation - the first working instance, with Docker Compose or the Helm chart.
- DNS for a mail domain - MX, SPF, DKIM, DMARC and PTR records.
- General configuration - how
yarilo.is laid out, TLS and hostnames.yaml
Configuring mail
- Protocols: IMAP, POP3, LMTP, Submission and JMAP.
- Authentication - password databases, SCRAM, OAuth 2.0 and master users.
- Mailbox storage - formats, namespaces and quota.
- Sieve and full-text search.
Running it in production
- Deployment - the Helm chart, sizing, and the standalone and director layouts.
- Architecture - the services and how a user is routed to a backend.
- yarctl for day-to-day administration, and smoke tests after each rollout.
Moving from another server
- Migration - converting existing mailboxes and keeping message identifiers stable.
- Feature coverage - what is implemented, feature by feature, and what is not.
Reference
- All settings - every
yarilo.key with its type, default and chart value.yaml - RFC support - the standards each service implements, and how far.
Source code and issues live on GitHub.