A complete and Simple Nixos Mailserver
Go to file
Florian Klink 0c1801b489 dovecot: add dovecot_pigeonhole to system packages
`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.
2023-06-29 20:54:57 +02:00
.hydra Release 23.05 2023-06-22 21:31:07 +02:00
docs Release 23.05 2023-06-22 21:31:07 +02:00
mail-server dovecot: add dovecot_pigeonhole to system packages 2023-06-29 20:54:57 +02:00
nixops add flake support 2020-12-15 16:14:44 +01:00
scripts docs: use MarkDown for option docs 2022-12-22 20:45:01 +01:00
tests Preserve the compatibility with nixos-22.11 2023-06-11 17:10:14 +02:00
.editorconfig Remove makefile section from editorconfig 2017-11-11 09:47:25 +00:00
.gitignore add gitignore file for result links 2017-12-21 11:55:22 +01:00
.gitlab-ci.yml ci: pin nixpkgs to 22.05 2022-11-27 20:43:25 +01:00
.readthedocs.yaml docs: drop options.md from the repository 2022-12-22 20:45:03 +01:00
default.nix Improve the certificateScheme number deprecation warning message 2023-06-11 07:29:18 +00:00
flake.lock Release 23.05 2023-06-22 21:31:07 +02:00
flake.nix Release 23.05 2023-06-22 21:31:07 +02:00
LICENSE Initial commit 2016-07-21 18:09:04 +02:00
README.md Release 23.05 2023-06-22 21:31:07 +02:00
shell.nix docs: use MarkDown for option docs 2022-12-22 20:45:01 +01:00
update.sh automatically update readme hash 2019-12-18 09:33:52 +01: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.

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