Listmonk
Open source mailing list application. https://listmonk.app
Prerequisites
By default, listmonk does not create an admin user, instead offering a setup page on initial startup. This should be prevented by creating an initial admin user with environment variables. See the secretFile option.
Mutable vs. Immutable settings
Even though a lot of settings are provisioned with nix, they are written to the database and editable via the listmonk UI.
Some settings (like the OIDC settings and root URL) will be overwritten every time the application gets redeployed. Other settings will only be written once during initial install (like the SMTP mailbox).
Usage
momo-cloud.listmonk = {
enable = true;
oidcSecretFile = config.age.secrets."listmonk-oidc-secret".path;
secretFile = config.age.secrets."listmonk-secret-file".path;
};
Secrets
To generate the OIDC secret for oidcSecretFile, used by services.kanidm.provision, you can use xxd:
xxd -u -l 32 -p /dev/urandom
The secret file is a file that will be handed to the listmonk service as a systemd EnvironmentFile. There are two variables that should always be set:
LISTMONK_ADMIN_USER: The admin user nameLISTMONK_ADMIN_PASSWORDThe admin user password
To generate the admin password:
xxd -u -l 32 -p /dev/urandom