Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| navody:server:mailserver-nixos [2020/05/05 19:26] – added english version to header martyet | navody:server:mailserver-nixos [2026/08/16 18:56] (aktuální) – Přirozenější znění návodů, lokalizace ukázek a doplnění týdenního vyzkoušení VPS aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| < | < | ||
| - | ====== Mailserver na NixOSu ====== | ||
| - | Pro potřeby jednoduchého setupu mailserveru lze využít nixosu, jeho balíčkovacího a deklarativního systému - v tomto návodu si ukážeme jak na to spolu s nastavením DNS záznamů. | + | ====== Mailserver |
| - | [[https:// | + | Tento návod byl přesunut na stránku |
| - | + | [[navody:server: | |
| - | * Postfix & Dovecot | + | |
| - | * rspamd (spam filter) & clamav (virus scanning) | + | |
| - | * opendkim | + | |
| - | * sieve custom scripts | + | |
| - | * user aliases & catch all & regular aliases | + | |
| - | + | ||
| - | Nastavení v případě produkčního serveru s nastaveným | + | |
| - | + | ||
| - | + | ||
| - | (jde o mou vlastní (lehce upravenou pro demo funkcionalit) konfiguraci, | + | |
| - | < | + | |
| - | { config, pkgs, ... }: | + | |
| - | { | + | |
| - | imports = [ | + | |
| - | (builtins.fetchTarball { | + | |
| - | url = " | + | |
| - | sha256 = " | + | |
| - | }) | + | |
| - | | + | |
| - | + | ||
| - | + | ||
| - | # sets up path to sieve scripts | + | |
| - | # services.dovecot2.sieveScripts = { | + | |
| - | # before = "/ | + | |
| - | # }; | + | |
| - | + | ||
| - | mailserver = { | + | |
| - | enable = true; | + | |
| - | fqdn = "< | + | |
| - | domains = [ " | + | |
| - | + | ||
| - | # A list of all login accounts. To create the password hashes, use | + | |
| - | # mkpasswd -m sha-512 "super secret password" | + | |
| - | loginAccounts = { | + | |
| - | " | + | |
| - | hashedPassword = "< | + | |
| - | + | ||
| - | aliases = [ | + | |
| - | " | + | |
| - | ]; | + | |
| - | + | ||
| - | # Or we can set this to catch all mails going to whole martinmyska.cz domain.com | + | |
| - | catchAll = [ | + | |
| - | " | + | |
| - | ]; | + | |
| - | }; | + | |
| - | " | + | |
| - | hashedPassword = "< | + | |
| - | + | ||
| - | # Or we can catch all mails going to completely another domain | + | |
| - | catchAll = [ | + | |
| - | " | + | |
| - | ]; | + | |
| - | }; | + | |
| - | + | ||
| - | + | ||
| - | }; | + | |
| - | # Extra virtual aliases. These are email addresses that are forwarded to | + | |
| - | # loginAccounts addresses. | + | |
| - | extraVirtualAliases = { | + | |
| - | # address = forward address; | + | |
| - | #" | + | |
| - | }; | + | |
| - | + | ||
| - | # Use Let's Encrypt certificates. Note that this needs to set up a stripped | + | |
| - | # down nginx and opens port 80. | + | |
| - | certificateScheme = 3; | + | |
| - | + | ||
| - | # Enable IMAP and POP3 | + | |
| - | enableImap = true; | + | |
| - | enablePop3 = true; | + | |
| - | enableImapSsl = true; | + | |
| - | enablePop3Ssl = true; | + | |
| - | + | ||
| - | # Enable the ManageSieve protocol | + | |
| - | enableManageSieve = true; | + | |
| - | + | ||
| - | # whether to scan inbound emails for viruses (note that this requires at least | + | |
| - | # 1 Gb RAM for the server. Without virus scanning 256 MB RAM should be plenty) | + | |
| - | virusScanning = true; | + | |
| - | }; | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | Po nakonfigurování je třeba nastavit na doméně DNS záznamy podle následujícího: | + | |
| - | + | ||
| - | + | ||
| - | ^ Doména | + | |
| - | |**martinmyska.cz**| TXT | 1800 | | v=spf1 ip4:< | + | |
| - | | _dmarc.**martinmyska.cz**|TXT | + | |
| - | | mail._domainkey.**martinmyska.cz** |TXT | 1800 | | v=DKIM1; k=rsa; p=< | + | |
| - | | mail.**martinmyska.cz** |A | 1800 | | <**IP tvého mailserveru**> | + | |
| - | | mail.**martinmyska.cz** |MX | 1800 |10 | mail.**martinmyska.cz** | + | |