defaults = { 'backups': { 'paths': { '/var/www/nextcloud', }, }, 'php': { 'clear_env': False, 'memory_limit': 512, 'post_max_size': 500, # MB 'packages': { 'apcu', 'bcmath', 'bz2', 'curl', 'gd', 'gmp', 'imagick', 'intl', 'mbstring', 'opcache', 'pgsql', 'redis', 'xml', 'yaml', 'zip', }, }, 'postgresql': { 'roles': { 'nextcloud': { 'password': repo.vault.password_for(f'{node.name} postgresql nextcloud'), }, }, 'databases': { 'nextcloud': { 'owner': 'nextcloud', }, }, }, 'systemd-timers': { 'timers': { 'nextcloud-cron': { 'command': '/usr/bin/php -f /var/www/nextcloud/cron.php', 'pwd': '/var/www/nextcloud', 'user': 'www-data', 'when': '*:00/5', }, }, }, 'zfs': { 'datasets': { 'tank/nextcloud': { 'mountpoint': '/var/www/nextcloud', 'needed_by': { 'directory:/var/www/nextcloud', }, }, }, }, } @metadata_reactor.provides( 'nginx/vhosts/nextcloud', ) def nginx(metadata): if not node.has_bundle('nginx'): raise DoNotRunAgain return { 'nginx': { 'vhosts': { 'nextcloud': { 'domain': metadata.get('nextcloud/domain'), 'php': True, 'extras': True, 'max_body_size': '500M', 'index': [ 'index.php', 'index.html', '/index.php$request_uri', ], 'webroot_config': { 'owner': 'www-data', }, }, }, }, }