Simple and complete declarative NixOS Mailserver setups
  • Nix 84.1%
  • Python 15.6%
  • Sieve 0.3%
Find a file
Martin Weinelt c37fd9c408 Merge branch 'flake-example-update' into 'main'
docs: update flakes example

See merge request simple-nixos-mailserver/nixos-mailserver!541
2026-06-19 18:00:35 +00:00
docs docs: update flakes example 2026-06-19 19:55:48 +02:00
LICENSES Migrate to SPDX headers and lint with reuse 2026-06-08 14:20:23 +02:00
mail-server Merge branch 'reuse' into 'main' 2026-06-08 13:05:38 +00:00
migrations Migrate to SPDX headers and lint with reuse 2026-06-08 14:20:23 +02:00
scripts Merge branch 'reuse' into 'main' 2026-06-08 13:05:38 +00:00
tests Migrate to SPDX headers and lint with reuse 2026-06-08 14:20:23 +02: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
.readthedocs.yaml flake.nix: prune hydra support; add aarch64-linux outputs 2026-06-17 05:21:54 +02:00
.rstcheck.cfg docs: rewrite 26.05 release notes 2026-05-24 21:03:47 +02:00
.typos.toml Check for obvious typos in pre-commit 2026-03-23 01:35:27 +01:00
default.nix Fix useFsLayout option change 2026-06-09 19:34:29 +02:00
flake.lock flake.lock: Update 2026-06-08 03:58:52 +02:00
flake.nix flake.nix: drop system name from nixos tests 2026-06-17 05:34:15 +02:00
LICENSE Migrate to SPDX headers and lint with reuse 2026-06-08 14:20:23 +02:00
pyproject.toml ruff: reject implicit string concat 2025-07-09 03:59:54 +02:00
README.md README.md: Fix 26.05 link pointing to 25.11 2026-06-12 20:55:05 +00:00
REUSE.toml Migrate to SPDX headers and lint with reuse 2026-06-08 14:20:23 +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

We publish a branch for each NixOS release. Only matching branch versions are supported.

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