Simple and complete declarative NixOS Mailserver setups
  • Nix 88%
  • Python 11.7%
  • Sieve 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martin Weinelt ceb3f17fe1 Merge branch 'restore-dovecot-hierarchy-separator' into 'main'
dovecot: restore hierarchy separator setting

See merge request simple-nixos-mailserver/nixos-mailserver!509
2026-04-14 13:59:05 +00:00
.hydra hydra: drop nixos-25.05 branch 2026-04-12 03:54:42 +02:00
docs Switch default branch to main 2026-04-12 03:54:39 +02:00
mail-server dovecot: restore hierarchy separator setting 2026-04-14 14:33:29 +02:00
migrations treewide: fix typos 2026-03-23 01:35:59 +01:00
scripts quota: expose global quota settings 2026-04-13 01:19:14 +02:00
tests Group storage and vmail user options at mailserver.storage 2026-03-24 01:57:31 +01:00
.editorconfig Remove makefile section from editorconfig 2017-11-11 09:47:25 +00:00
.envrc Provide direnv integration for flake devshell 2025-05-15 16:29:03 +02:00
.git-blame-ignore-revs git-blame-ignore-revs: init 2026-03-12 13:43:09 +01:00
.gitignore Provide direnv integration for flake devshell 2025-05-15 16:29:03 +02:00
.gitlab-ci.yml ci: run on main branch 2026-04-12 03:59:39 +02:00
.readthedocs.yaml docs: fail build on warnings 2026-03-11 17:01:39 +01:00
.typos.toml Check for obvious typos in pre-commit 2026-03-23 01:35:27 +01:00
default.nix quota: expose global quota settings 2026-04-13 01:19:14 +02:00
flake.lock flake.lock: Update 2026-04-13 01:19:14 +02:00
flake.nix Check for obvious typos in pre-commit 2026-03-23 01:35:27 +01:00
LICENSE Initial commit 2016-07-21 18:09:04 +02:00
pyproject.toml ruff: reject implicit string concat 2025-07-09 03:59:54 +02:00
README.md Switch default branch to main 2026-04-12 03:54:39 +02:00
shell.nix treewide: reformat with nixfmt-rfc-style 2025-06-15 03:39:44 +02:00

Simple Nixos MailServer

license pipeline status

Release branches

For each NixOS release, we publish a branch. You then have to use the SNM branch corresponding to your NixOS version.

Features

  • Continuous Integration Testing
  • Multiple Domains
  • Postfix
    • SMTP on port 25
    • Submission TLS on port 465
    • Submission StartTLS on port 587
    • LMTP with Dovecot
    • DANE and MTA-STS validation
    • SMTP TLS Reports (RFC 8460)
  • Dovecot
    • Maildir folders
    • IMAP with TLS on port 993
    • POP3 with TLS on port 995
    • IMAP with StartTLS on port 143
    • POP3 with StartTLS on port 110
  • Certificates
    • ACME
    • Custom certificates
  • Spam Filtering
    • Via Rspamd
  • Virus Scanning
    • Via ClamAV
  • DKIM Signing
    • Via Rspamd
    • Automatic key generation
    • Multiple selectors per Domain
  • User Management
    • Declarative user management
    • Declarative password management
    • LDAP users
  • Sieve
    • Allow user defined sieve scripts
    • Moving mails from/to junk trains the Bayes filter
    • ManageSieve support
  • User Aliases
    • Regular aliases
    • Catch all aliases
  • Improve the Forwarding Experience

In the future

Get in touch

How to Set Up a 10/10 Mail Server Guide

Check out the Setup Guide in the project's documentation.

For a complete list of options, see in readthedocs.

Development

See the How to Develop SNM documentation page.

Contributors

See the contributor tab

Alternative Implementations

Credits