Commit Graph

41 Commits

Author SHA1 Message Date
Martin Weinelt 18ee2a44ed docs: extract setup example into .nix file and include
That way we get linting of the code for free.
2025-12-19 02:17:32 +01:00
Martin Weinelt eeda8ba39e Add support for sender rewriting using postsrsd
With SRS we support forwarding of mails without (fully) breaking SPF
alignment.
2025-11-11 13:45:03 +01:00
Martin Weinelt 6f17c29eb8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4' (2025-11-05)
  → 'github:NixOS/nixpkgs/8ea611305a7db12c49446f9c40c609614419ec4b' (2025-11-08)
2025-11-08 17:57:18 +01:00
Martin Weinelt 619e35dce2 Stop testing stable nixos
We only test and support matching nixpkgs versions to simpliy alignment
with breaking changes on nixos unstable.
2025-11-08 13:40:56 +01:00
Martin Weinelt 85f0a94466 flake.nix: update sphinx-rtd-theme package attribute
'sphinx_rtd_theme' has been renamed to/replaced by 'sphinx-rtd-theme'
2025-11-04 00:51:49 +01:00
Martin Weinelt 2b240501e0 Introduce system name and domain options
Bring them up from the DMARC reporting section to the mailserver toplevel
so they become reusable for the upcoming TLSRPT integration.

We default to the first domain in the domains option, if not set
explicitly, so that `systemDomain` doesn't become a blocker for existing
setups. We still encourage picking out the intended one, which is likely
the one used for the MX hostname.

This also simplifies the DMARC reporting configuration, which doesn't
need to be so fine-grained.

Co-Authored-By: Emily <git@emilylange.de>
2025-07-09 01:44:10 +02:00
Martin Weinelt 1a7f3d718c treewide: reformat with nixfmt-rfc-style 2025-06-15 03:39:44 +02:00
Martin Weinelt 03433d472f flake.nix: enable nixfmt-rfc-style hook and formatter 2025-06-15 03:34:20 +02:00
Martin Weinelt 51d48f1492 Release 25.11 2025-05-22 01:31:46 +02:00
Martin Weinelt f7a221bc69 flake.nix: expose packages for custom pre-commit hooks in devshell 2025-05-21 00:56:01 +02:00
Martin Weinelt fbfd948535 flake.nix: remove clamav from devshell, add glab
With glab we provide the GitLab CLI utility to interact programatically
with the platform. Useful for checking our Merge request branches for
example.
2025-05-15 16:29:05 +02:00
Martin Weinelt 4c25278507 flake.nix: print options.md outpath during build
Helpful for debugging the resulting options file.
2025-05-15 16:29:05 +02:00
Martin Weinelt 313f94ed8f flake.nix: create pre-commit hydra job 2025-05-15 16:29:04 +02:00
Martin Weinelt ff9087adb4 flake.nix: drop CC from devshell
We absolutely do not need a C compiler in here.
2025-05-15 16:29:03 +02:00
Martin Weinelt d0ac5ce64c flake.nix: annotate flake-compat usage
It is not used within flake.nix, so add a note that it is used elsewhere.
2025-05-15 16:29:03 +02:00
Martin Weinelt 41e513da64 flake.nix: configure pre-commit 2025-05-15 16:29:03 +02:00
Martin Weinelt 1ce644871b flake.nix: ignore the flake registry
There is no real benefit using it anyway.
2025-05-15 16:16:16 +02:00
Martin Weinelt ef1e02e555 flake.nix: run tests against pinned nixpkgs
and migrate to the new runTest, which evaluates much faster.
2025-05-10 02:43:35 +02:00
Antoine Eiche 63209b1def Release 24.11 2024-12-22 16:20:47 +00:00
isabel 54cbacb6eb chore: remove flake utils 2024-06-14 21:52:49 +01:00
Antoine Eiche 29916981e7 Release 24.05 2024-06-11 07:36:43 +02:00
Antoine Eiche 79c8cfcd58 Remove the support of 23.05 and 23.11
This is because SNM now supports the new sieve nixpkgs interface,
which is not backward compatible with previous releases.
2024-03-14 21:51:05 +01:00
Antoine Eiche e47f3719f1 Release 23.11 2024-01-25 22:52:54 +01:00
Martin Weinelt 8b03ae5701 Create LDAP test
Sets up a declaratively configured OpenLDAP instance with users alice
and bob. They each own one email address,

First we test that postfix can communicate with LDAP and do the expected
lookups using the defined maps.

Then we use doveadm to make sure it can look up the two accounts.

Next we check the binding between account and mail address, by logging
in as alice and trying to send from bob@example.com, which alice is not
allowed to do. We expect postfix to reject the sender address here.

Finally we check mail delivery between alice and bob. Alice tries to
send a mail from alice@example.com to bob@example.com and bob then
checks whether it arrived in their mailbox.
2023-07-11 19:31:20 +00:00
Antoine Eiche 24128c3052 Release 23.05 2023-06-22 21:31:07 +02:00
Antoine Eiche 1bcfcf786b Remove the NixOS 22.11 support
Because the option `nodes.domain1.services.dnsmasq.settings' does not
exist.
2023-05-24 23:37:17 +02:00
Antoine Eiche fd605a419b Fix test names 2023-05-24 23:06:29 +02:00
Naïm Favier 0bbb2ac74e docs: drop options.md from the repository
Generate the file on the readthedocs builder using Nix. Since there is
no root access or user namespaces, we have to use proot (see
https://nixos.wiki/wiki/Nix_Installation_Guide#PRoot).
2022-12-22 20:45:03 +01:00
Naïm Favier 4fcab839d7 docs: use MarkDown for option docs 2022-12-22 20:45:01 +01:00
Antoine Eiche bc667fb6af Release 22.11 2022-12-21 22:46:04 +01:00
Antoine Eiche 033b3d2a45 Removing 22.05 release
Because of some incompabilities with the 22.11 release.
2022-11-30 20:59:39 +01:00
Martin Weinelt fe36e7ae0d rspamd: allow configuring dmarc reporting
Enabling collects DMARC results in Redis and sends out aggregated
reports (RUA) on a daily basis.
2022-11-27 20:34:38 +00:00
Antoine Eiche f535d8123c Release 22.05 2022-06-22 22:39:06 +02:00
Naïm Favier 4ed684481b Update nixos-unstable and drop 21.11 2022-02-24 20:51:40 +00:00
Naïm Favier f4c14572fc Drop 21.05 branch 2022-02-24 20:51:40 +00:00
Antoine Eiche 6e3a7b2ea6 Release nixos-21.11 2021-12-07 22:09:14 +01:00
Antoine Eiche acaba31d8f docs: fix the test which could never fail 2021-10-14 09:07:32 +02:00
Antoine Eiche 42db23553d Nixify the documentation build 2021-07-28 21:35:58 +02:00
Antoine Eiche 4d087532b6 docs: generate the list of options
To generate the list of options, we need to generate and commit a rst
file to make all files available for ReadTheDoc.

An Hydra test ensures this generated file is up-to-date. If it is not
up-to-date, the error message explains the user how to generate it:
the user just needs to run `nix-shell --run generate-rst-options`.
2021-07-27 19:58:33 +00:00
Antoine Eiche a0f9688a31 Switch CI to Nix flakes
We also move tests to Flakes.

This would allow users to submit PRs with a fork of nixpkgs when they
want to test nixpkgs PRs against SNM.
2021-07-12 22:57:01 +02:00
Naïm Favier ae89eafb81 add flake support 2020-12-15 16:14:44 +01:00