Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

mailman

  • Clone with SSH
  • Clone with HTTPS
  • Mailman (3)

    Parameters and defaults

    All configuration is to be placed inside the mailman dict.

    # mail address for the site owner
    site_owner: changeme@example.com
    
    # domain used for lists
    default_domain: example.com
    
    # all settings regarding the mailman api
    api:
    	# settings for listen addresses
    	hostname: localhost
    	port: 8001
    	# api version to use, only "3.1" was tested
    	version: "3.1"
    	# api account setting
    	admin:
    		# should not be changed
    		name: restadmin
    		pw: "{{ lookup('password', '/dev/null length=32') }}"
    
    # webinterface settings
    web:
    	# django secret key
    	secretkey: "{{ lookup('password', '/dev/null length=128') }}"
    	# activate remote auth in django
    	remote_user: False
    	# enable signup
    	signup: True
    	# allow users to change their password
    	change_pw: True
    	# dict with ldap settings or "False" to disable
    	ldap: False
    		# Ldap server url. Can  be ldap:// or ldaps://
    #		url: "ldaps://example.com"
    		# enable account and list membership sync. Membership sync musst be explicitly configured per list
    #		sync: true
    		# use a bind user to connect to the ldap. If it is not specified, sync will not work.
    #		bind_dn: "cn=mailman,ou=system,dc=example,dc=com"
    #		bind_password: "{{ lookup('passwordstore', '/dev/null length=64 nosymbols=true') }}"
    		# LDAP Search to find all groups. See https://django-auth-ldap.readthedocs.io/en/latest/
    #		group_search: 'LDAPSearch("ou=groups,dc=example,dc=com", ldap.SCOPE_ONELEVEL, "(objectClass=groupOfUniqueNames)")'
    #		group_type: 'GroupOfUniqueNamesType()'
    		# a search that musst return **all** users and select the attribute containing the user name. Only used for ldap sync
    #		user_search_all_name: 'LDAPSearch("ou=users,dc=example,dc=com", ldap.SCOPE_ONELEVEL, "(&(objectClass=posixAccount)(memberOf=cn=service_mailman_access,ou=groups,dc=example,dc=com))", ["uid"])'
    		# see https://django-auth-ldap.readthedocs.io/en/latest/
    #		user_filter: 'uid=%(user)s,ou=users,dc=example,dc=com'
    		# optionaly set a ca cert or other connection settings
    #		options: "{ ldap.OPT_X_TLS_CACERTFILE: '/etc/ssl/myfancy.ca', ldap.OPT_X_TLS_REQUIRE_CERT: True, ldap.OPT_X_TLS_NEWCTX: 0 }"
    		# map django roles
    #		mappings:
    #			"is_active": "cn=service_mailman_access,ou=groups,dc=example,dc=com"
    #			"is_staff": "cn=service_mailman_admin,ou=groups,dc=example,dc=com"
    #			"is_superuser": "cn=service_mailman_admin,ou=groups,dc=example,dc=com"
    #		group_require: "cn=service_mailman_access,ou=groups,dc=example,dc=com"
    	# logged in session timeout in seconds
    	session_timeout: 3600
    
    # hypperkitty settings
    archiver:
    	# api key
    	key: "{{ lookup('password', '/dev/null length=128') }}"
    
    # default settings used for all lists
    list_defaults:
    	# Mailman settings to set for this list. See https://docs.mailman3.org/projects/mailmanclient/en/latest/_modules/mailmanclient/restobjects/settings.html#Settings
    	settings: {}
    	# ldap sync settings
    	ldap:
    		member:
    			# enable syncing for this role type
    			enabled: False
    			# basedn to search
    			dn: "ou=users,dc=example,dc=com"
    			# ldap filter to use
    			filter: "(&(objectClass=posixAccount)(memberOf=cn=my_fancy_list,ou=groups,dc=example,dc=com))"
    			# attribute to read the user name from
    			username_attr: "uid"
    		moderator: # see **member** description
    		owner: # see **member** description
    
    # Mailing lists to setup. The key is the list name, the value the per list settings
    lists: {}
    #	'list@example.com': {
    		# See https://docs.mailman3.org/projects/mailmanclient/en/latest/_modules/mailmanclient/restobjects/settings.html#Settings
    #		settings: {
    #			'description': 'foobar',
    #		}
    		# See description in **list_defaults**
    #		ldap: {..}
    #	}