mirror of
https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git
synced 2024-12-25 14:36:08 +01:00
A complete and Simple Nixos Mailserver
0c1801b489
`sieve-test` can be used to test sieve scripts. It's annoying to nix-shell it in, because it reads the dovecot global config and might stumble over incompatible .so files (as has happened to me). Simply providing it in $PATH is easier. |
||
---|---|---|
.hydra | ||
docs | ||
mail-server | ||
nixops | ||
scripts | ||
tests | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
.readthedocs.yaml | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md | ||
shell.nix | ||
update.sh |
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 23.05
- For NixOS 22.11
- For NixOS unstable
- Use the SNM branch
master
- Documentation
- Use the SNM branch
Subscribe to SNM Announcement List This is a very low volume list where new releases of SNM are announced, so you can stay up to date with bug fixes and updates.
Features
v2.0
- Continous Integration Testing
- Multiple Domains
- Postfix MTA
- 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
- manual certificates
- on the fly creation
- Let's Encrypt
- Spam Filtering
- via rspamd
- Virus Scanning
- via clamav
- DKIM Signing
- via opendkim
- User Management
- declarative user management
- declarative password management
- Sieves
- A simple standard script that moves spam
- Allow user defined sieve scripts
- ManageSieve support
- User Aliases
- Regular aliases
- Catch all aliases
In the future
- DKIM Signing
- Allow a per domain selector
Get in touch
- Subscribe to the mailing list
- Join the Libera Chat IRC channel
#nixos-mailserver
Quick Start
{ config, pkgs, ... }:
let release = "nixos-21.11";
in {
imports = [
(builtins.fetchTarball {
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/${release}/nixos-mailserver-${release}.tar.gz";
# This hash needs to be updated
sha256 = "0000000000000000000000000000000000000000000000000000";
})
];
mailserver = {
enable = true;
fqdn = "mail.example.com";
domains = [ "example.com" "example2.com" ];
loginAccounts = {
"user1@example.com" = {
# nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt' > /hashed/password/file/location
hashedPasswordFile = "/hashed/password/file/location";
aliases = [
"info@example.com"
"postmaster@example.com"
"postmaster@example2.com"
];
};
};
};
}
For a complete list of options, see default.nix
.
How to Set Up a 10/10 Mail Server Guide
Check out the Complete Setup Guide in the project's documentation.
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