diff --git a/bundles/gocryptfs/items.py b/bundles/gocryptfs/items.py index d2486ca..2e2e199 100644 --- a/bundles/gocryptfs/items.py +++ b/bundles/gocryptfs/items.py @@ -31,6 +31,8 @@ files['/etc/gocryptfs/gocryptfs.conf'] = { for path, options in node.metadata.get('gocryptfs/paths').items(): directories[options['mountpoint']] = { + 'owner': None, + 'group': None, 'preceded_by': [ f'svc_systemd:gocryptfs-{options["id"]}:stop', ], diff --git a/bundles/nextcloud/files/config.php b/bundles/nextcloud/files/config.php new file mode 100644 index 0000000..4018a55 --- /dev/null +++ b/bundles/nextcloud/files/config.php @@ -0,0 +1,65 @@ + 'ocfnc48njsxw', + 'passwordsalt' => 'xxx', + 'secret' => 'xxx', + 'trusted_domains' => + array ( + 0 => 'cloud.sublimity.de', + ), + 'trusted_proxies' => + array ( + 0 => 'cloud.sublimity.de', + ), + 'datadirectory' => '/var/lib/nextcloud', + 'overwrite.cli.url' => 'https://cloud.sublimity.de', + 'overwriteprotocol' => 'https', + 'dbtype' => 'mysql', + 'version' => '21.0.1.1', + 'dbname' => 'nextcloud', + 'dbhost' => 'localhost', + 'dbport' => '', + 'dbtableprefix' => 'oc_', + 'dbuser' => 'nextcloud', + 'dbpassword' => 'xxx', + 'installed' => true, + 'updater.release.channel' => 'stable', + 'maintenance' => false, + 'memcache.local' => '\\OC\\Memcache\\Redis', + 'memcache.locking' => '\\OC\\Memcache\\Redis', + 'theme' => '', + 'default_phone_region' => 'DE', + 'loglevel' => 0, + 'preview_max_x' => 1280, + 'preview_max_y' => 1280, + 'preview_max_scale_factor' => 1, + 'user_backends' => + array ( + 0 => + array ( + 'class' => 'OC_User_IMAP', + 'arguments' => + array ( + 0 => '{mail.sublimity.de:143}', + ), + ), + ), + 'mail_smtpmode' => 'smtp', + 'mail_smtpauthtype' => 'PLAIN', + 'mail_smtpsecure' => 'tls', + 'mail_from_address' => 'cloud', + 'mail_domain' => 'sublimity.de', + 'mail_smtphost' => 'mail.sublimity.de', + 'mail_smtpport' => '587', + 'mail_smtpauth' => 1, + 'mail_smtpname' => 'xxx', + 'mail_smtppassword' => 'xxx', + 'mysql.utf8mb4' => true, + 'app_install_overwrite' => + array ( + 0 => 'spreed', + 1 => 'camerarawpreviews', + 2 => 'calendar', + 3 => 'previewgenerator', + ), +); diff --git a/bundles/nextcloud/items.py b/bundles/nextcloud/items.py new file mode 100644 index 0000000..5ef3b0b --- /dev/null +++ b/bundles/nextcloud/items.py @@ -0,0 +1,27 @@ +assert node.has_bundle('php') + +version = node.metadata.get('nextcloud/version') + +downloads[f'/tmp/nextcloud-{version}.tar.bz2'] = { + 'url': f'https://download.nextcloud.com/server/releases/nextcloud-{version}.tar.bz2', + 'sha256': node.metadata.get('nextcloud/sha256'), + 'triggered': True, +} + +directories['/opt/nextcloud'] = {} + +actions['extract_nextcloud'] = { + 'command': f'tar xfvj /tmp/nextcloud-{version}.tar.bz2 --strip 1 -C /opt/nextcloud nextcloud', + 'unless': f"""php -r 'include "/opt/nextcloud/version.php"; echo "$OC_VersionString";' | grep -q '^{version}$'""", + 'preceded_by': [ + f'download:/tmp/nextcloud-{version}.tar.bz2', + ], + 'needs': [ + 'directory:/opt/nextcloud', + ], +} + +directories['/var/lib/nextcloud'] = { + 'owner': 'www-data', + 'group': 'www-data', +} diff --git a/bundles/nextcloud/metadata.py b/bundles/nextcloud/metadata.py index 132eb51..fa1fc51 100644 --- a/bundles/nextcloud/metadata.py +++ b/bundles/nextcloud/metadata.py @@ -1,4 +1,17 @@ defaults = { + 'apt': { + 'packages': { + 'php': {}, + 'php-curl': {}, + 'php-gd': {}, + 'php-json': {}, + 'php-xml': {}, + 'php-mbstring': {}, + 'php-cli': {}, + 'php-cgi': {}, + 'php-zip': {}, + }, + }, 'archive': { 'paths': { '/var/lib/nextcloud': { diff --git a/nodes/htz.mails.py b/nodes/htz.mails.py index 009119e..9a495f2 100644 --- a/nodes/htz.mails.py +++ b/nodes/htz.mails.py @@ -12,6 +12,7 @@ 'gcloud', 'wireguard', 'zfs', + 'nextcloud', ], 'metadata': { 'bind': { @@ -68,6 +69,10 @@ # 'woodpipe.de', ], }, + 'nextcloud': { + 'version': '21.0.2', + 'sha256': '5e5b38109a3485db5fd2d248f24478eabe6c0790ec10b030acbbee207d5511fe', + }, 'roundcube': { 'product_name': 'Sublimity Mail', 'version': '1.4.11',