From 206fdbe1e523d58ef27efab8a1cf749459b50d16 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 16 Sep 2023 18:02:31 +0200 Subject: WIP: Nextcloud support --- .../puppet/modules/nextcloud/manifests/init.pp | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 personal_infra/puppet/modules/nextcloud/manifests/init.pp (limited to 'personal_infra/puppet/modules/nextcloud/manifests') diff --git a/personal_infra/puppet/modules/nextcloud/manifests/init.pp b/personal_infra/puppet/modules/nextcloud/manifests/init.pp new file mode 100644 index 00000000..378026e3 --- /dev/null +++ b/personal_infra/puppet/modules/nextcloud/manifests/init.pp @@ -0,0 +1,87 @@ +class nextcloud( + $database_name, + $database_user, + $database_host, + $admin_pass, + $data_dir, +) { + + file {'/etc/yum.repos.d/koalillo-nextcloud-epel-9.repo': + content => @("EOT"/$) + [copr:copr.fedorainfracloud.org:koalillo:nextcloud-test] + name=Copr repo for nextcloud owned by koalillo + baseurl=https://download.copr.fedorainfracloud.org/results/koalillo/nextcloud-test/epel-9-\$basearch/ + type=rpm-md + skip_if_unavailable=True + gpgcheck=1 + gpgkey=https://download.copr.fedorainfracloud.org/results/koalillo/nextcloud-test/pubkey.gpg + repo_gpgcheck=0 + enabled=1 + enabled_metadata=1 + | EOT + , + } + + package {'remi-release': + source => 'https://rpms.remirepo.net/enterprise/remi-release-9.rpm', + } + -> + exec {'/usr/bin/dnf module enable -y php:remi-8.2': + unless => '/usr/bin/dnf module list --enabled php | grep remi-8.2', + } + + package {['nextcloud-httpd', 'nextcloud-postgresql', 'php82-php-pecl-apcu', 'php-sodium', 'php-opcache',]: + require => [ + Exec['/usr/bin/dnf module enable -y php:remi-8.2'], + File['/etc/yum.repos.d/koalillo-nextcloud-epel-9.repo'], + ], + } + + service {'httpd': + enable => true, + ensure => running, + subscribe => Package['nextcloud-httpd'], + } + + service {'nextcloud-cron.timer': + ensure => running, + enable => true, + require => Package['nextcloud-httpd'], + } + + file {'/etc/php-fpm.d/www.conf': + content => epp("nextcloud/www.conf", {}), + } + ~> + service {'php-fpm': + enable => true, + ensure => running, + subscribe => Package['nextcloud-httpd'], + } + + file {'/etc/httpd/conf.d/z-nextcloud-access.conf': + ensure => '/etc/httpd/conf.d/nextcloud-access.conf.avail', + require => Package['nextcloud-httpd'], + notify => Service['httpd'], + } + + package {['php-intl', 'php-bcmath']:} + + file {'/etc/php.d/99-apcu-cli.ini': + content => @("EOT") + apc.enable_cli=1 + | EOT + , + } + + exec {'install nextcloud': + user => 'apache', + command => "/usr/share/nextcloud/occ maintenance:install -n --database pgsql --database-name $database_name --database-user $database_user --database-host $database_host --admin-user admin --admin-pass $admin_pass --data-dir $data_dir", + unless => "/usr/share/nextcloud/occ config:system:get installed | grep true" + } + + cron {"nextcloud-previews": + command => "sudo -u apache php -d memory_limit=512M /usr/share/nextcloud/occ preview:generate", + minute => "41", + } +} -- cgit v1.2.3