Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

  1. LISTMONK_ADMIN_USER: The admin user name
  2. LISTMONK_ADMIN_PASSWORD The admin user password

To generate the admin password:

xxd -u -l 32 -p /dev/urandom