README.md 3.62 KB
Newer Older
Robin Raymond's avatar
Robin Raymond committed
1
# ![Simple Nixos MailServer][logo]
2
![license](https://img.shields.io/badge/license-GPL3-brightgreen.svg)
3
[![pipeline status](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/badges/master/pipeline.svg)](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/commits/master)
Robin Raymond's avatar
Robin Raymond committed
4

Robin Raymond's avatar
Robin Raymond committed
5

Robin Raymond's avatar
Robin Raymond committed
6
## Stable Releases
7

Robin Raymond's avatar
Robin Raymond committed
8
* [SNM v2.2.1](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/tags/v2.2.1)
Robin Raymond's avatar
Robin Raymond committed
9

Robin Raymond's avatar
Robin Raymond committed
10
[Latest Release (Candidate)](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/tags/v2.2.1)
11

Robin Raymond's avatar
Robin Raymond committed
12 13 14 15 16 17 18 19 20
[Subscribe to SNM Announcement List](https://www.freelists.org/list/snm)
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. All announcements are signed by
the gpg key with fingerprint

```
D9FE 4119 F082 6F15 93BD  BD36 6162 DBA5 635E A16A
```

21

Robin Raymond's avatar
Robin Raymond committed
22
## Features
Robin Raymond's avatar
Robin Raymond committed
23
### v2.0
Robin Raymond's avatar
Robin Raymond committed
24
 * [x] Continous Integration Testing
Robin Raymond's avatar
Robin Raymond committed
25
 * [x] Multiple Domains
Robin Raymond's avatar
Robin Raymond committed
26 27 28
 * Postfix MTA
    - [x] smtp on port 25
    - [x] submission port 587
29 30
    - [x] lmtp with dovecot
 * Dovecot
Robin Raymond's avatar
Robin Raymond committed
31 32 33
    - [x] maildir folders
    - [x] imap starttls on port 143
    - [x] pop3 starttls on port 110
34 35 36
 * Certificates
    - [x] manual certificates
    - [x] on the fly creation
Robin Raymond's avatar
Robin Raymond committed
37
    - [x] Let's Encrypt
38
 * Spam Filtering
Robin Raymond's avatar
Robin Raymond committed
39
    - [x] via rspamd
40
 * Virus Scanning
Robin Raymond's avatar
Robin Raymond committed
41
    - [x] via clamav
42
 * DKIM Signing
Robin Raymond's avatar
Robin Raymond committed
43
    - [x] via opendkim
44
 * User Management
Robin Raymond's avatar
Robin Raymond committed
45 46
    - [x] declarative user management
    - [x] declarative password management
47 48 49
 * Sieves
    - [x] A simple standard script that moves spam
    - [x] Allow user defined sieve scripts
Andrey Golovizin's avatar
Andrey Golovizin committed
50
    - [x] ManageSieve support
Robin Raymond's avatar
Robin Raymond committed
51 52 53
 * User Aliases
    - [x] Regular aliases
    - [x] Catch all aliases
Robin Raymond's avatar
Robin Raymond committed
54

Robin Raymond's avatar
Robin Raymond committed
55
### In the future
56

Robin Raymond's avatar
Robin Raymond committed
57 58
  * DKIM Signing
    - [ ] Allow a per domain selector
Robin Raymond's avatar
Robin Raymond committed
59

60
### Changelog and How to Stay Up-to-Date
Robin Raymond's avatar
Robin Raymond committed
61

62
See the [mailing list archive](https://www.freelists.org/archive/snm/)
Robin Raymond's avatar
Robin Raymond committed
63

Robin Raymond's avatar
Robin Raymond committed
64
### Quick Start
Robin Raymond's avatar
Robin Raymond committed
65

Robin Raymond's avatar
Robin Raymond committed
66
```nix
Robin Raymond's avatar
Robin Raymond committed
67 68 69
{ config, pkgs, ... }:
{
  imports = [
70
    (builtins.fetchTarball {
Robin Raymond's avatar
Robin Raymond committed
71
      url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/v2.2.1/nixos-mailserver-v2.2.1.tar.gz";
Robin Raymond's avatar
Robin Raymond committed
72
      sha256 = "03d49v8qnid9g9rha0wg2z6vic06mhp0b049s3whccn1axvs2zzx";
73
    })
Robin Raymond's avatar
Robin Raymond committed
74
  ];
Robin Raymond's avatar
Robin Raymond committed
75

Robin Raymond's avatar
Robin Raymond committed
76 77
  mailserver = {
    enable = true;
Robin Raymond's avatar
Robin Raymond committed
78 79 80 81 82
    fqdn = "mail.example.com";
    domains = [ "example.com" "example2.com" ];
    loginAccounts = {
        "user1@example.com" = {
            hashedPassword = "$6$/z4n8AQl6K$kiOkBTWlZfBd7PvF5GsJ8PmPgdZsFGN1jPGZufxxr60PoR0oUsrvzm2oQiflyz5ir9fFJ.d/zKm/NgLXNUsNX/";
Robin Raymond's avatar
Robin Raymond committed
83

Robin Raymond's avatar
Robin Raymond committed
84 85 86 87
            aliases = [
                "info@example.com"
                "postmaster@example.com"
                "postmaster@example2.com"
Robin Raymond's avatar
Robin Raymond committed
88
            ];
Robin Raymond's avatar
Robin Raymond committed
89
        };
Robin Raymond's avatar
Robin Raymond committed
90 91 92 93 94 95 96 97
    };
  };
}
```

For a complete list of options, see `default.nix`.


98

Robin Raymond's avatar
Robin Raymond committed
99
## How to Set Up a 10/10 Mail Server Guide
100
Check out the [Complete Setup Guide](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/wikis/A-Complete-Setup-Guide) in the project's wiki.
101

Robin Raymond's avatar
Robin Raymond committed
102 103
## How to Backup

104
Checkout the [Complete Backup Guide](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/wikis/A-Complete-Backup-Guide). Backups are easy with `SNM`.
Robin Raymond's avatar
Robin Raymond committed
105

106
## Development
107

108
See the [How to Develop SNM](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/wikis/How-to-Develop-SNM) wiki page.
109

Robin Raymond's avatar
Robin Raymond committed
110
## Contributors
111
See the [contributor tab](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/graphs/master)
Robin Raymond's avatar
Robin Raymond committed
112

Robin Raymond's avatar
Robin Raymond committed
113 114
### Alternative Implementations
 * [NixCloud Webservices](https://github.com/nixcloud/nixcloud-webservices)
Robin Raymond's avatar
Robin Raymond committed
115 116 117 118 119 120 121

### Credits
 * send mail graphic by [tnp_dreamingmao](https://thenounproject.com/dreamingmao)
   from [TheNounProject](https://thenounproject.com/) is licensed under
   [CC BY 3.0](http://creativecommons.org/~/3.0/)
 * Logo made with [Logomakr.com](https://logomakr.com)

Robin Raymond's avatar
Robin Raymond committed
122 123


124

Robin Raymond's avatar
Robin Raymond committed
125
[logo]: logo/logo.png