Skip to content

Commit

Permalink
docs(garuda-mail): update information with current changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dr460nf1r3 committed Jan 20, 2024
1 parent 16e1636 commit facbcc7
Showing 1 changed file with 30 additions and 4 deletions.
34 changes: 30 additions & 4 deletions docs/src/hosts/garuda-mail.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,50 @@

### General

This system mainly consists of the [simple-nixos-mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver). Its only purpose is providing a mail service to team members. The current config looks like [this](https://gitlab.com/garuda-linux/infra-nix/-/blob/main/nixos/hosts/garuda-mail.nix?ref_type=heads#L47).
This system mainly consists of the [simple-nixos-mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver).
Its only purpose is providing a mail service to team members.
The current config looks like [this](https://gitlab.com/garuda-linux/infra-nix/-/blob/main/nixos/hosts/garuda-mail.nix?ref_type=heads#L47).
In case of issues, the [documentation](https://nixos-mailserver.readthedocs.io/en/latest/) can be consulted.

### Mail server setup

The mail server details are as follows:

- host: `mail.garudalinux.net`
- incoming: IMAP via `993`
- outgoing: SMTP via `587/465`
- username: full email address
- password: given password
- incoming: IMAP via `993` (SSL)
- outgoing: SMTP via `587/465` (STARTTLS/SSL)

Additionally, it is possible to make use of the [Roundcube-powered web interface](https://mail.garudalinux.net).

### Roundcube

Roundcube is used to provide a web interface for our mail accounts.
It features a few plugins to enhance the general user experience.

#### Plugins

- attachment_reminder - reminds about forgotten attachments
- authres_status - checks for whether SPF/DKIM/DMARC match the sending domain
- carddav - allows adding a CardDAV contact book as source (eg. Nextcloud)
- contextmenu - adds a right click context menu to the most pages
- custom_from - allows customizing from address
- managesieve - allows managing Sieve rules, which automatically sort incoming mails based on rules
- newmail_notifier - new mail notifier for desktops
- persistent_login - alows storing a persistent login cookie for no more login prompts
- thunderbird_labels - shows Thunderbird labels
- zipdownload - allows downloading all attachments at once

### Backups

Backups are happening daily via Borg. A Hetzner storage box is used to store multiple generations of backups.

### Creating a new user

A new user can be created be adding a new `loginAccounts` value and supplying the password via `secrets`. We make use of `hashedPasswordFile`, therefore new hashes can be generated by running `nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'`. Add it to the `secrets`, `deploy` and `apply`. Don't forget to commit both changes.
A new user can be created be adding a new `loginAccounts` value and supplying the password via `secrets`.
We make use of `hashedPasswordFile`, therefore new hashes can be generated by running `nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'`. Add it to the `secrets`, then execute `deploy` and `apply`.
Don't forget to commit both changes.

### Nix expression

Expand Down

0 comments on commit facbcc7

Please sign in to comment.