nixos-mailserver/README.md

133 lines
4.4 KiB
Markdown
Raw Normal View History

2017-09-13 17:03:04 +05:00
# ![Simple Nixos MailServer][logo]
2016-07-21 21:55:01 +05:00
![license](https://img.shields.io/badge/license-GPL3-brightgreen.svg)
[![pipeline status](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/badges/master/pipeline.svg)](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/commits/master)
2016-07-21 21:11:43 +05:00
2017-09-13 17:03:04 +05:00
## Release branches
For each NixOS release, we publish a branch. You then have to use the
SNM branch corresponding to your NixOS version.
2023-05-24 02:06:06 +05:00
* For NixOS 23.05
- Use the [SNM branch `nixos-23.05`](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/tree/nixos-23.05)
- [Documentation](https://nixos-mailserver.readthedocs.io/en/nixos-23.05/)
- [Release notes](https://nixos-mailserver.readthedocs.io/en/nixos-23.05/release-notes.html#nixos-23-05)
2022-12-01 00:56:06 +05:00
* For NixOS 22.11
- Use the [SNM branch `nixos-22.11`](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/tree/nixos-22.11)
- [Documentation](https://nixos-mailserver.readthedocs.io/en/nixos-22.11/)
- [Release notes](https://nixos-mailserver.readthedocs.io/en/nixos-22.11/release-notes.html#nixos-22-11)
2020-05-22 17:52:45 +05:00
* For NixOS unstable
- Use the [SNM branch `master`](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/tree/master)
- [Documentation](https://nixos-mailserver.readthedocs.io/en/latest/)
2017-09-20 19:27:52 +05:00
2017-12-14 21:12:30 +05:00
[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.
2017-12-14 21:12:30 +05:00
2017-12-22 22:51:57 +05:00
2017-09-13 16:16:17 +05:00
## Features
2017-11-11 20:15:30 +05:00
### v2.0
2017-11-21 12:52:54 +05:00
* [x] Continous Integration Testing
2017-11-11 20:15:30 +05:00
* [x] Multiple Domains
2017-09-13 16:16:17 +05:00
* Postfix MTA
- [x] smtp on port 25
2020-07-06 13:38:12 +05:00
- [x] submission tls on port 465
- [x] submission starttls on port 587
2017-08-13 15:58:00 +05:00
- [x] lmtp with dovecot
* Dovecot
2017-09-13 16:16:17 +05:00
- [x] maildir folders
2020-07-06 13:38:12 +05:00
- [x] imap with tls on port 993
- [x] pop3 with tls on port 995
- [x] imap with starttls on port 143
- [x] pop3 with starttls on port 110
2017-08-13 15:58:00 +05:00
* Certificates
- [x] manual certificates
- [x] on the fly creation
2017-11-11 20:15:30 +05:00
- [x] Let's Encrypt
2017-08-13 15:58:00 +05:00
* Spam Filtering
2017-09-13 16:16:17 +05:00
- [x] via rspamd
2017-08-13 15:58:00 +05:00
* Virus Scanning
2017-09-13 16:16:17 +05:00
- [x] via clamav
2017-08-13 15:58:00 +05:00
* DKIM Signing
2017-09-13 16:16:17 +05:00
- [x] via opendkim
2017-08-13 15:58:00 +05:00
* User Management
2017-09-13 16:16:17 +05:00
- [x] declarative user management
- [x] declarative password management
2017-11-20 11:16:08 +05:00
* Sieves
- [x] A simple standard script that moves spam
- [x] Allow user defined sieve scripts
2018-01-07 17:15:36 +05:00
- [x] ManageSieve support
2017-12-20 12:40:58 +05:00
* User Aliases
- [x] Regular aliases
- [x] Catch all aliases
2017-09-13 16:16:17 +05:00
2017-11-11 20:15:30 +05:00
### In the future
2017-11-20 11:16:08 +05:00
2017-11-11 20:15:30 +05:00
* DKIM Signing
- [ ] Allow a per domain selector
2017-09-13 13:17:04 +05:00
### Get in touch
2017-09-13 13:17:04 +05:00
- Subscribe to the [mailing list](https://www.freelists.org/archive/snm/)
2021-06-06 13:21:14 +05:00
- Join the Libera Chat IRC channel `#nixos-mailserver`
2017-11-11 20:15:30 +05:00
2017-11-13 18:59:25 +05:00
### Quick Start
2017-10-17 14:52:47 +05:00
2017-10-17 14:53:53 +05:00
```nix
{ config, pkgs, ... }:
2022-01-21 17:02:15 +05:00
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" = {
2022-11-28 00:14:22 +05:00
# 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"
];
};
};
};
}
2017-10-17 14:52:47 +05:00
```
For a complete list of options, see `default.nix`.
2017-08-12 14:52:01 +05:00
2017-11-13 18:59:25 +05:00
## How to Set Up a 10/10 Mail Server Guide
Check out the [Complete Setup Guide](https://nixos-mailserver.readthedocs.io/en/latest/setup-guide.html) in the project's documentation.
2018-02-28 18:07:50 +05:00
## Development
2017-11-10 21:16:21 +05:00
2023-05-24 02:06:06 +05:00
See the [How to Develop SNM](https://nixos-mailserver.readthedocs.io/en/latest/howto-develop.html) documentation page.
2020-05-22 17:52:45 +05:00
2017-09-03 18:43:37 +05:00
## Contributors
2020-05-27 00:00:37 +05:00
See the [contributor tab](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/graphs/master)
2017-11-21 16:07:07 +05:00
2017-11-21 13:45:59 +05:00
### Alternative Implementations
* [NixCloud Webservices](https://github.com/nixcloud/nixcloud-webservices)
2017-09-13 17:03:04 +05:00
### 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)
2017-11-21 13:45:59 +05:00
2021-07-24 00:24:22 +05:00
[logo]: docs/logo.png