74 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| database_password = repo.vault.password_for(f'{node.name} postgresql roundcube')
 | |
| 
 | |
| defaults = {
 | |
|     'apt': {
 | |
|         'packages': {
 | |
|             'php': {},
 | |
|             'php-auth-sasl': {},
 | |
|             'php-cli': {},
 | |
|             'php-fpm': {},
 | |
|             'php-imagick': {},
 | |
|             'php-intl': {},
 | |
|             'php-mail-mime': {},
 | |
|             'php-mbstring': {},
 | |
|             # FIXME: not available in bullseye?
 | |
|             # 'php-net-idna2': {}, 
 | |
|             'php-net-smtp': {},
 | |
|             'php-net-socket': {},
 | |
|             'php-pear': {},
 | |
|             'php-pgsql': {},
 | |
|             'php-xml': {},
 | |
|             'php-zip': {},
 | |
|             'php-curl': {},
 | |
|             'php-gd': {},
 | |
|             'composer': {},
 | |
|             'php-ldap': {},
 | |
|         },
 | |
|     },
 | |
|     'roundcube': {
 | |
|         'database': {
 | |
|             'provider': 'pgsql',
 | |
|             'host': 'localhost',
 | |
|             'name': 'roundcube',
 | |
|             'user': 'roundcube',
 | |
|             'password': database_password,
 | |
|         },
 | |
|         'plugins': [
 | |
|             'managesieve',
 | |
|             'password',
 | |
|         ],
 | |
|         'des_key': repo.vault.password_for(f'{node.name} roundcube des_key', length=24),
 | |
|     },
 | |
|     'postgresql': {
 | |
|         'roles': {
 | |
|             'roundcube': {
 | |
|                 'password': database_password,
 | |
|             },
 | |
|         },
 | |
|         'databases': {
 | |
|             'roundcube': {
 | |
|                 'owner': 'roundcube',
 | |
|             },
 | |
|         },
 | |
|     },
 | |
|     'sudoers': {
 | |
|         'www-data': ['/usr/bin/doveadm pw -s ARGON2ID'],
 | |
|     },
 | |
| }
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'nginx/vhosts'
 | |
| )
 | |
| def vhost(metadata):
 | |
|     return {
 | |
|         'nginx': {
 | |
|             'vhosts': {
 | |
|                 metadata.get('mailserver/hostname'): {
 | |
|                     'content': 'roundcube/vhost.conf',
 | |
|                     'context': {
 | |
|                         'root': '/opt/roundcube',
 | |
|                     },
 | |
|                 },
 | |
|             },
 | |
|         },
 | |
|     }
 | 
