bundlewrap/bundles/dovecot/items.py

145 lines
3.4 KiB
Python

assert node.has_bundle('mailserver')
users['vmail'] = {
'home': '/var/vmail',
}
directories = {
'/etc/dovecot': {
'purge': True,
},
'/etc/dovecot/conf.d': {
'purge': True,
'needs': [
'pkg_apt:dovecot-sieve',
'pkg_apt:dovecot-managesieved',
]
},
'/etc/dovecot/ssl': {},
'/var/vmail': {
'owner': 'vmail',
'group': 'vmail',
},
'/var/vmail/index': {
'owner': 'vmail',
'group': 'vmail',
},
'/var/vmail/sieve': {
'owner': 'vmail',
'group': 'vmail',
},
'/var/vmail/sieve/global': {
'owner': 'vmail',
'group': 'vmail',
},
'/var/vmail/sieve/bin': {
'owner': 'vmail',
'group': 'vmail',
},
}
files = {
'/etc/dovecot/dovecot.conf': {
'content_type': 'mako',
'context': {
'admin_email': node.metadata.get('mailserver/admin_email'),
'indexer_ram': node.metadata.get('dovecot/indexer_ram'),
},
'needs': {
'pkg_apt:'
},
'triggers': {
'svc_systemd:dovecot:restart',
},
},
'/etc/dovecot/dovecot-sql.conf': {
'content_type': 'mako',
'context': node.metadata.get('mailserver/database'),
'needs': {
'pkg_apt:'
},
'triggers': {
'svc_systemd:dovecot:restart',
},
},
'/etc/dovecot/dhparam.pem': {
'content_type': 'any',
},
'/etc/dovecot/dovecot-sql.conf': {
'content_type': 'mako',
'context': node.metadata.get('mailserver/database'),
'needs': {
'pkg_apt:'
},
'triggers': {
'svc_systemd:dovecot:restart',
},
},
'/var/vmail/sieve/global/spam-to-folder.sieve': {
'owner': 'vmail',
'group': 'vmail',
'triggers': {
'svc_systemd:dovecot:restart',
},
},
'/var/vmail/sieve/global/learn-ham.sieve': {
'owner': 'vmail',
'group': 'vmail',
'triggers': {
'svc_systemd:dovecot:restart',
},
},
'/var/vmail/sieve/bin/learn-ham.sh': {
'owner': 'vmail',
'group': 'vmail',
'mode': '550',
},
'/var/vmail/sieve/global/learn-spam.sieve': {
'owner': 'vmail',
'group': 'vmail',
'triggers': {
'svc_systemd:dovecot:restart',
},
},
# /usr/local/libexec/dovecot?
# /usr/lib/dovecot/sieve-pipe?
'/var/vmail/sieve/bin/learn-spam.sh': {
'owner': 'vmail',
'group': 'vmail',
'mode': '550',
},
}
actions = {
'dovecot_generate_dhparam': {
'command': 'openssl dhparam -out /etc/dovecot/dhparam.pem 2048',
'unless': 'test -f /etc/dovecot/dhparam.pem',
'cascade_skip': False,
'needs': {
'pkg_apt:',
'directory:/etc/dovecot/ssl',
},
'triggers': {
'svc_systemd:dovecot:restart',
},
},
}
svc_systemd = {
'dovecot': {
'needs': {
'action:letsencrypt_update_certificates',
'action:dovecot_generate_dhparam',
'file:/etc/dovecot/dovecot.conf',
'file:/etc/dovecot/dovecot-sql.conf',
},
},
}
# fulltext search
directories['/usr/local/libexec/dovecot'] = {}
files['/usr/local/libexec/dovecot/decode2text.sh'] = {
'owner': 'dovecot',
'mode': '500',
}