62 lines
1.3 KiB
Markdown
62 lines
1.3 KiB
Markdown
# Mail
|
|
|
|
A simple NixOS mailserver.
|
|
|
|
View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/master/modules/nixos/mailserver).
|
|
|
|
## References
|
|
|
|
- [docs](https://nixos-mailserver.readthedocs.io/en/latest/index.html)
|
|
|
|
## Setup
|
|
|
|
Follow the [setup guide](https://nixos-mailserver.readthedocs.io/en/master/setup-guide.html#setup-dns-a-record-for-server).
|
|
|
|
## Sops
|
|
|
|
Provide every user's hashed password to your host's `secrets.yaml`:
|
|
|
|
> Replace `abc123` with your actual secrets
|
|
|
|
```yaml
|
|
mailserver:
|
|
accounts:
|
|
user1: abc123
|
|
user2: abc123
|
|
# ...
|
|
```
|
|
|
|
Generate hashed passwords with:
|
|
|
|
```sh
|
|
nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
|
|
```
|
|
|
|
## Config
|
|
|
|
### `flake.nix`
|
|
|
|
```nix
|
|
inputs = {
|
|
nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
|
|
nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
```
|
|
|
|
### Host configuration:
|
|
|
|
```nix
|
|
imports = [ inputs.synix.nixosModules.mailserver ]
|
|
|
|
mailserver = {
|
|
enable = true;
|
|
accounts = {
|
|
admin = {
|
|
aliases = [ "postmaster" ];
|
|
};
|
|
alice = { };
|
|
};
|
|
};
|
|
```
|
|
|
|
You may need to set [`mailserver.stateVersion`](https://nixos-mailserver.readthedocs.io/en/master/migrations.html). At the time of writing, you need to set it to `3`, but you should check the mailserver docs yourself.
|