A complete and Simple Nixos Mailserver
Go to file
2017-09-13 13:06:44 +02:00
mail-server include junk sieve script 2017-09-13 13:06:44 +02:00
nixops flesh out nixops file a little 2017-09-13 10:16:47 +02:00
tests add user password test 2017-09-13 10:16:18 +02:00
default.nix add commit from Infinisil that got lost in the merge 2017-09-03 15:57:49 +02:00
LICENSE Initial commit 2016-07-21 18:09:04 +02:00
README.md update readme 2017-09-13 10:17:04 +02:00

nixos-mailserver

license

Work in progress...

What works and what is missing for first release v 1.0

  • Postfix
    • starts
    • receive email on port 25
    • receive email on submission port 587
    • lmtp with dovecot
  • Dovecot
    • lmtp with postfix
    • creates maildir folders, saves mails
    • imap retrieval
    • pop3 retrieval
  • Certificates
    • manual certificates
    • on the fly creation
    • TODO: Let's Encrypt (postponed to future release)
  • Spam Filtering
    • scans emails
  • Virus Scanning
    • Checks incoming mail for viruses
  • DKIM Signing
    • Works
  • User Management
    • Creates Users
    • Set Passwords in config file
  • Update Documentation
    • Remove all TODOs
    • Write a Starter Guide
    • Make a Small Homepage
    • Flesh Out Documentation
  • Test
    • Write Tests to ensure integrity

Changelog

v1.0 -> v1.1

  • Changed structure to Nix Modules

How to Test

You can test the setup via nixops. After installation, do

nixops create nixops/single-server.nix nixops/vbox.nix -d mail
nixops deploy -d mail
nixops info -d mail

You can then test the server via e.g. telnet. To log into it, use

nixops ssh -d mail mailserver

To test imap manually openssl s_client -host mail.example.com -port 143 -starttls imap

A Complete Mail Server Without Moving Parts

Used Technologies

  • Nixos
  • Nixpkgs
  • Dovecot
  • Postfix
  • Rmilter
  • Rspamd
  • Clamav
  • Opendkim
  • Pam

Features

  • one domain
  • unlimited mail accounts
  • unlimited aliases for every mail account
  • spam and virus checking
  • dkim signing of outgoing emails
  • imap (optionally pop3)
  • startTLS

Nonfeatures

  • moving parts
  • SQL databases
  • configurations that need to be made after nixos-rebuild switch
  • complicated storage schemes
  • webclients / http-servers

Ideas for future releases

  • Fine grained control over ownership of aliases
  • More than one domain
  • Let's Encrypt

Contributors

  • Special thanks to @Infinisil for the module rewrite
  • @danbst
  • @phdoerfler