Commit Graph
96 Commits
Author SHA1 Message Date
Antoine Eiche 8c1c4640b8 Increase the evaluation periodicity from 30s to 5m
This has been asked by the Nix community for debugging and maintenance
purposes.
2025-02-09 18:14:30 +01:00
Antoine Eiche 63209b1def Release 24.11 2024-12-22 16:20:47 +00: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
Antoine Eiche b5023b36a1 postfix: exclude $mynetwork from smtpd_forbid_bare_newline 2023-12-27 09:46:26 +01:00
Antoine Eiche 69a4b7ad67 ldap: add an entry in the doc 2023-07-11 19:31:20 +00:00
Antoine Eiche 71b4c62d85 dovecot: fix a typo on userAttrs 2023-07-11 19:31:20 +00:00
Antoine Eiche 6775502be3 ldap: set assertions to forbid ldap and loginAccounts simultaneously 2023-07-11 19:31:20 +00:00
Antoine Eiche 7695c856f1 ldap: improve the documentation 2023-07-11 19:31:20 +00:00
Antoine Eiche fb3210b932 ldap: do not write password to the Nix store 2023-07-11 19:31:20 +00:00
Antoine Eiche 33554e57ce Make the ldap test working
- The smtp/imap user name is now user@domain.tld
- Make the test_lookup function much more robust: it was now getting
  the correct file from the store.
2023-07-11 19:31:20 +00:00
Antoine Eiche 24128c3052 Release 23.05 2023-06-22 21:31:07 +02:00
Antoine Eiche c4ec122aac readme: remove the announcement public key
Current maintainer no longer has it.
2023-06-11 17:10:19 +02:00
Antoine Eiche 131c48de9b Preserve the compatibility with nixos-22.11 2023-06-11 17:10:14 +02:00
Antoine Eiche 290d00f6db Improve the certificateScheme number deprecation warning message 2023-06-11 07:29:18 +00: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
Antoine Eiche bc667fb6af Release 22.11 2022-12-21 22:46:04 +01:00
Antoine Eiche 31eadb6388 doc: regenerate it 2022-11-30 21:03:13 +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
Antoine Eiche 3f0b7a1b5c ci: pin nixpkgs to 22.05
Because hydra-cli build is currently broken on unstable.
2022-11-27 20:43:25 +01:00
Antoine Eiche 737eb4f398 docs: explicitly mention a reverse DNS entry is required
Fixes https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/issues/234
2022-11-27 19:14:52 +00:00
Antoine Eiche f535d8123c Release 22.05 2022-06-22 22:39:06 +02:00
Antoine Eiche 021b5c8f73 ci: enable the nix-command feature 2022-02-25 09:24:52 +01:00
Antoine Eiche 11ad4742aa Fix CI job because of Nix new CLI options 2022-02-24 20:49:27 +00:00
Antoine Eiche 665aa181e6 ci: make release-21.11 a flake job 2022-02-20 11:29:33 +01:00
Antoine Eiche 6e3a7b2ea6 Release nixos-21.11 2021-12-07 22:09:14 +01:00
Antoine Eiche 9d3a87905e docs: add .readthedocs.yml conf file to pin Python dependencies 2021-11-07 11:13:06 +01:00
Antoine Eiche acaba31d8f docs: fix the test which could never fail 2021-10-14 09:07:32 +02:00
Antoine Eiche 74bb227990 docs: remove output paths from generated documentation
Otherwise, the `testRstOptions` test would fail too often!
2021-10-14 09:06:14 +02:00
Antoine Eiche 72748d7b6d Use the Junk mailbox name defined in the mailboxes attrs
Previously, the static Junk mailbox was used in sieve script to move
spam messages. This patch gets the Junk mailbox defined in the dovecot
mailboxes attribute instead.

Fixes #224
2021-08-06 16:21:03 +00:00
Antoine Eiche 42db23553d Nixify the documentation build 2021-07-28 21:35:58 +02:00
Antoine Eiche 68b9397a30 Move the logo 2021-07-27 19:58:33 +00: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 9578dbac69 Remove non longer supported configurations (<21.05) 2021-07-24 09:57:44 +02:00
Antoine Eiche 864ea5bfef Update nixpkgs-unstable 2021-07-24 09:42:30 +02:00
Antoine Eiche a37dac9d66 ci: reenable 20.09 and 21.05 jobs :/
They haven't been moved to flake so we still need to keep the non
flake Hydra configuration.
2021-07-12 23:28:02 +02:00
Antoine Eiche 2fa9c7c4df tests: update fts indexer log messages 2021-07-12 22:57:01 +02:00
Antoine Eiche 87735ed077 Remove Niv
It is now useless since we are using Nix Flakes
2021-07-12 22:57:01 +02: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
Antoine Eiche a9f87ca461 Update nixpkgs-unstable
Because of
https://github.com/NixOS/nixpkgs/commit/b7749c76715ba96727f7a12bc2514ddfa6847813
we need to `set +o pipefail` several asserts.
2021-06-24 23:02:58 +02:00
Antoine Eiche 5675b122a9 readme: switch from freenode to libera 2021-06-06 10:21:14 +02:00
Antoine Eiche 92a0939896 ci: simplify declarative-jobsets.nix 2021-06-06 10:20:14 +02:00
Antoine Eiche bbcc6863b5 Release nixos-21.05 2021-06-06 10:20:14 +02:00
Antoine Eiche ddafdfbde7 Make Niv working in restricted evaluation mode 2021-06-06 09:54:03 +02:00
Antoine Eiche 3fc047bc64 Remove nixos-20.03 job
We only support 2 releases.
2021-06-06 09:44:41 +02:00
Antoine Eiche 2ca02f32c8 hydra: provide nixpkgs to allow Niv to use pkgs.fetchzip 2021-05-31 09:53:52 +02:00
Antoine Eiche 500685bc38 hydra: remove useless declInput argument 2021-05-27 23:03:20 +02:00
Antoine Eiche 2eab26e05c Switch from Freenode to Libera 2021-05-27 09:00:29 +02:00
Antoine Eiche 8b28705621 Rename intern/extern tests to internal/external 2021-05-01 08:21:27 +02:00
Antoine Eiche f4c8d4b298 Update nixpkgs-unstable 2021-04-18 18:58:44 +02:00
Antoine Eiche 93330c5453 Move indexDir option to the mailserver scope
This option has been initially in the mailserver.fullTextSearch
scope. However, this option modifies the location of all index files
of dovecot and not only those used by the full text search feature. It
is then more relevant to have this option in the mailserver top level
scope.

Moreover, the default option has been changed to null in order to keep
existing index files where they are: changing the index location means
recreating all index files. The fts documentation however recommend to
change this default location when enabling the fts feature.
2021-04-07 22:22:38 +02:00
Antoine Eiche 66e8baa6f2 Rework the setup guide 2021-03-23 18:40:44 +00:00
Antoine Eiche 06cf3557df Mention the Freenode IRC chan #nixos-mailserver 2021-03-10 18:46:03 +01:00
Antoine Eiche 326766126c doc: minor improvments 2021-03-03 08:36:08 +00:00
Antoine Eiche 548e6b5a04 doc: add a FAQ section 2021-03-03 08:36:08 +00:00
Antoine Eiche 7e84fd4c93 doc: add a section howto
This section contains advanced configuration howtos.
2021-03-03 08:36:08 +00:00
Antoine Eiche 5f431207b3 postfix: forwarding emails of login accounts with keeping local copy
When a local account address is forwarded, the mails were not locally
kept. This was due to the way lookup tables were internally managed.

Instead of using lists to represent Postfix lookup tables, we now use
attribute sets: they can then be easily merged.

A regression test for
https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/issues/
has been added: it sets a forward on a local address and ensure an
email sent to this address is locally kept.

Fixes #205
2021-02-06 08:17:43 +00:00
Antoine Eiche ee3d38a157 Set mailserver.policydSPFExtraConfig in a debug module
The line type of this option make its concatenation cleaner: the user
doesn't have to manually add `\n` to its policydSPFExtraConfig value
when debug in set.
2020-12-23 09:39:55 +01:00
Antoine Eiche bee80564d8 ci: simplify the hydra-cli call
The version 0.0.3 of hydra-cli prints the jobset details on error.
2020-11-30 08:56:57 +01:00
Antoine Eiche 4ce3e1bf4e readme: mention the unstable documentation 2020-11-30 08:55:26 +01:00
Antoine Eiche ee1ad50830 Add 20.09 Hydra jobset and remove 19.09 2020-11-20 09:12:15 +01:00
Antoine Eiche 7d2020cb36 Move clamav database to the blobs repository
This database is huge and can be fetched at build time.

Fixes #197
2020-11-11 20:27:59 +01:00
Antoine Eiche c04260cf5e Update nixpkgs-unstable 2020-10-31 08:34:36 +01:00
Antoine Eiche 99f843de47 Release nixos-20.09 branch 2020-10-31 08:34:36 +01:00
Antoine Eiche bb9fd8bc17 docs: add missing Sphinx Makefile:/ 2020-10-31 08:34:36 +01:00
Antoine Eiche 843e66864f docs: no longer use tagged release but branch instead in docs 2020-10-31 08:34:36 +01:00
Antoine Eiche 4818b57a92 test.dovecot: ensure port 143 is closed when enableImap is not set
The test also checks the connection on the imap port 993 is a SSL
connection.
2020-10-05 21:18:36 +02:00
Antoine Eiche 823c26fa69 Update nixpkgs-unstable 2020-10-04 10:54:23 +02:00
Antoine Eiche 9d7f02e67b Support sandboxed opendkim 2020-10-04 10:49:57 +02:00
Antoine Eiche c813f1205f Add multiple.nix test
This test is used to test feature requiring several mail domains, such
as the `forwards` option.
2020-09-28 20:51:32 +02:00
Antoine Eiche 24600377af Add forwards option
This option allow to forward mails to external addresses.
2020-09-28 20:50:45 +02:00
Antoine Eiche 4008d0cb53 Move tests to the Python framework 2020-07-27 23:11:54 +02:00
Antoine Eiche 31cf3818df readme: switch doc links from wiki to readthedocs 2020-07-06 22:33:19 +02:00
Antoine Eiche 8db0e18438 docs: how to contribute to documentation 2020-07-06 22:33:19 +02:00
Antoine Eiche 781073b64d docs: create a readthedocs manual
The goal is to remove the WIKI since modifications can not be
submitted via PRs.
2020-07-06 19:48:51 +00:00
Antoine Eiche e1b0bb42b4 ci: add 20.03 jobset 2020-05-24 20:41:03 +02:00
Antoine Eiche 54ecf17810 Release nixos-20.03 2020-05-24 20:41:03 +02:00
Antoine Eiche b8e4ed00c3 Remove 19.09 support
Note there is still the 19.09 branch.
2020-05-11 21:46:01 +00:00
Antoine Eiche 830c66f1be readme: no more release but branch instead
For each NixOS release, we publish a branch. This would allow us to
continue to apply patches to these branches, in case of bug or
security fixes.
2020-05-11 21:46:01 +00:00
Antoine Eiche 7788eccc24 Merge branch 'eqyiel/nixos-mailserver-feat/make-lmtp_save_to_detail_mailbox-optional' 2020-05-08 21:02:55 +02:00
Antoine Eiche 9b5779de16 tests/intern: set memorySize to 1G
There is an OOM when running this test.
2020-05-08 20:43:46 +02:00
Antoine Eiche abe3c4aedc Add send-only test
In the intern test, we send a mail to a send-only account and check
the reject message is correcly returned.
2020-05-08 20:43:46 +02:00
Antoine Eiche 41219cc690 Rename rejectMessage to sendOnlyRejectMessage 2020-05-08 20:43:46 +02:00
Antoine Eiche ac0f5c118f ci: build the branch 19.09 2020-05-05 21:03:10 +02:00
Antoine Eiche 899d68ac7a ci: better error message
The error message contains a link to the latest Hydra evaluation.
2020-04-23 00:23:17 +02:00
Antoine Eiche b0647c95c9 Remove the GitLab runner related code 2020-04-22 23:35:48 +02:00
Antoine Eiche b5263680a4 Check the Hydra master jobset as well 2020-04-22 23:35:48 +02:00
Antoine Eiche 493afb5f9a ci: check Hydra jobsets status 2020-04-19 15:08:32 +02:00
Antoine Eiche 1cac50dab5 .hydra: fix pull request jobset description 2020-04-19 14:59:01 +02:00
Antoine Eiche 2493056eed Setup an Hydra declarative project
This commit adds configuration files ingested an Hydra instance to
create a declarative project.
Currently, this Hydra instance builds
- the master branch
- all pull requests

We use the nix community provided Hydra instance
https://hydra.nix-community.org/project/simple-nixos-mailserver.
2020-04-19 10:01:57 +02:00
Antoine Eiche 09ca79801b tests: no ssl cert check for fetchmail
Since the certificate is autosigned, an SSL error was emitted by
dovecot.
2020-04-19 10:01:57 +02:00
Antoine Eiche a53aa5ac9a Use Niv to pin nixpkgs releases
Before using Niv, we were following channels meaning we can not
reproduce CI jobs easily.

In this change, we use Niv to pin these dependencies. We are also
addding a tests/default.nix to be able to run these tests locally.

For instance, to run the test extern.nix on the nixpkgs-19.09 release:

    nix-build tests/default.nix -A extern.nixpkgs_19_09

Fixes #178
2020-04-19 10:01:57 +02:00
Antoine Eiche e9dea6cdb4 postfix: also create the dh.pem if it is empty
The dh.pem file is currently created by the postfix prestart
script. If the entropy of the system is to low, the postfix prestart
can timeout. In this case, an empty file is created.
If the user restarts the postfix service, the dh.pem is not created
because the file already exists (but is empty).
When a ssl is established with dovecot, it fails with this message:
imap-login: `Error:Failed to initialize SSL server context: Couldn't parse DH parameters:
error:0906D06C:PEM routines:PEM_read_bio:no start line: Expecting: DH
PARAMETERS`

With this patch, the postfix service creates the dh.pem if the dh.pem
doesn't exist or if it is empty. It doesn't fix the entropy or
timeout issue but at least, the user knows something is failing:/
2018-05-10 01:04:02 +02:00
Antoine Eiche 0f75894b4f dkim: set header canonicalization to relaxed
Instead of simple canonicalization which is the default one.

Fixes #120
2018-05-04 19:55:25 +02:00