Mailman environment configuration

System package configuration


List of the base APT packages to install for Mailman 3 support.


  - 'mailman3-full'
  - 'lynx'
  - '{{ "dbconfig-pgsql"
        if (mailman__database_type == "postgresql")
        else [] }}'
  - '{{ "dbconfig-mysql"
        if (mailman__database_type == "mysql")
        else [] }}'

List of additional APT packages to install with Mailman 3.

mailman__packages: []

UNIX environment


The UNIX system account used by the Mailman installation.

mailman__user: 'list'

The UNIX system group used by the Mailman installation.

mailman__group: 'list'

Web environment


The DNS domain used by Mailman service.

mailman__domain: '{{ ansible_domain }}'

The Fully Qualified Domain Name used by Mailman. If the Mailman3 web interface sends emails, this domain will be used for the sender addresses. In particular, it will be 'postorius@<fqdn>' for internal authentication and 'root@<fqdn>' for error messages.

mailman__fqdn: 'lists.{{ mailman__domain }}'

Additional DNS names used by the Mailman webserver. The users will be automatically redirected to the main FQDN of the service.

mailman__additional_domains: []

Database configuration options


The database type used by the Mailman installation, defined via Ansible local facts to avoid switching to a different database on subsequent Ansible runs. If Mailman 3 is not installed, the database will be selected in order of preference - PostgreSQL, MySQL, SQLite.

mailman__database_type: '{{ ansible_local.mailman.database_class.split(".")[2]
                            if (ansible_local|d() and ansible_local.mailman is defined)
                            else ("postgresql"
                                  if (ansible_local.postgresql is defined)
                                  else ("mysql"
                                        if (ansible_local.mariadb is defined)
                                        else "sqlite")) }}'

Django superuser account


Name of the Django superuser account created by the role.

mailman__superuser_name: '{{ ansible_local.core.admin_users[0]
                             if (ansible_local.core.admin_users|d())
                             else "admin" }}'

E-mail address of the Django superuser account created by the role.

mailman__superuser_email: '{{ ansible_local.core.admin_private_email[0]
                              if (ansible_local.core.admin_private_email|d())
                              else ("postmaster@" + mailman__domain) }}'