6ef1eb9ce1e649727f3c113354e7ac204b5c56ba
mailserver.stateVersion is unset (null)
Eval does not stop on the first assertion failure it encouters.
Instead, it tries to evaluate all assertions and returns with a list of
those that failed.
This means our very top `config.mailserver.stateVersion != null`
assertion does not gate against any other assertions trying to compare
null against an integer.
The error prior to this commit can be reproduced by removing
`mailserver.stateVersion = 999;` in tests/lib/config.nix and then trying
to evaluate any of the tests:
~~~bash
# nix eval --raw .#checks.x86_64-linux.internal-unstable
error:
… while evaluating the attribute 'outPath'
at /nix/store/syvnmj3hhckkbncm94kfkbl76qsdqqj3-source/lib/customisation.nix:421:7:
420| drv.drvPath;
421| outPath =
| ^
422| assert condition;
… while calling the 'getAttr' builtin
at «internal»:1:500:
(stack trace truncated; use '--show-trace' to show the full trace)
error: cannot compare null with an integer
~~~
Release branches
For each NixOS release, we publish a branch. You then have to use the SNM branch corresponding to your NixOS version.
- For NixOS 25.05
- For NixOS 24.11
- For NixOS unstable
- Use the SNM branch
master - Documentation
- Use the SNM branch
Features
- Continous Integration Testing
- Multiple Domains
- Postfix
- SMTP on port 25
- Submission TLS on port 465
- Submission StartTLS on port 587
- LMTP with Dovecot
- 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
- 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
In the future
- Automatic client configuration
- DKIM Signing
- Allow per domain selectors
- Allow passing DKIM signing keys
- Improve the Forwarding Experience
- User management
- Allow local and LDAP user to coexist
- OpenID Connect
- Depends on relevant clients adding support, e.g. Thunderbird
Get in touch
- Matrix: #nixos-mailserver:nixos.org
- IRC:
#nixos-mailserveron Libera Chat
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
- send mail graphic by tnp_dreamingmao from TheNounProject is licensed under CC BY 3.0
- Logo made with Logomakr.com
Description
Languages
Nix
92.8%
Python
6.5%
Sieve
0.4%
Shell
0.3%
