Go to file
Robin Raymond 061054926d make clamav a module 2017-09-02 12:59:07 +02:00
mail-server make clamav a module 2017-09-02 12:59:07 +02:00
nixops update nixops for module config 2017-09-02 12:58:25 +02:00
LICENSE Initial commit 2016-07-21 18:09:04 +02:00
README.md update goals for v1.0 2017-08-23 17:37:45 +02:00
default.nix make clamav a module 2017-09-02 12:59:07 +02:00

README.md

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
    • Test
    • Squash Bugs
    • Test
    • ...

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

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