summaryrefslogtreecommitdiff
path: root/personal_infra/puppet/modules/nextcloud/manifests/init.pp
blob: a21b9cfc1a2d7befb28378442fcf9787314ab250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class nextcloud(
  $database_name,
  $database_user,
  $database_host,
) {

    file {'/etc/yum.repos.d/koalillo-nextcloud-epel-9.repo':
      content => @("EOT"/$)
      [copr:copr.fedorainfracloud.org:koalillo:nextcloud]
      name=Copr repo for nextcloud owned by koalillo
      baseurl=https://download.copr.fedorainfracloud.org/results/koalillo/nextcloud/epel-9-\$basearch/
      type=rpm-md
      skip_if_unavailable=True
      gpgcheck=1
      gpgkey=https://download.copr.fedorainfracloud.org/results/koalillo/nextcloud/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
      ,
    }

    cron {"nextcloud-previews":
      command => "cd /tmp/ ; sudo -u apache php -d memory_limit=512M /usr/share/nextcloud/occ preview:generate-all -q",
      minute => "41",
    }
}