✨: add nextcloud webapps
This commit is contained in:
15
roles/nextcloud/tasks/db.yml
Normal file
15
roles/nextcloud/tasks/db.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
- name: Create nextcloud db role
|
||||
become_user: postgres
|
||||
become: true
|
||||
community.postgresql.postgresql_user:
|
||||
name: "{{ nextcloud_pg_role }}"
|
||||
password: "{{ nextcloud_pg_password }}"
|
||||
|
||||
- name: Create nextcloud db
|
||||
become_user: postgres
|
||||
become: true
|
||||
community.postgresql.postgresql_db:
|
||||
name: "{{ nextcloud_pg_database }}"
|
||||
owner: "{{ nextcloud_pg_role }}"
|
7
roles/nextcloud/tasks/main.yml
Normal file
7
roles/nextcloud/tasks/main.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- name: Init db
|
||||
ansible.builtin.include_tasks: db.yml
|
||||
|
||||
- name: Install nextcloud
|
||||
ansible.builtin.include_tasks: nextcloud.yml
|
58
roles/nextcloud/tasks/nextcloud.yml
Normal file
58
roles/nextcloud/tasks/nextcloud.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
|
||||
- name: Create application directory
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
dest: "{{ nextcloud_local_path }}"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "0o750"
|
||||
|
||||
- name: Install nextcloud application
|
||||
ansible.builtin.unarchive:
|
||||
remote_src: true
|
||||
src: "{{ nextcloud_url }}"
|
||||
dest: "{{ nextcloud_local_path }}"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "a-rwx,u+rwX,g+rX"
|
||||
extra_opts: ['--strip-components=1']
|
||||
exclude:
|
||||
- "data"
|
||||
- "config/config.php"
|
||||
|
||||
- name: Put config file
|
||||
ansible.builtin.template:
|
||||
src: "config.php.j2"
|
||||
dest: "{{ nextcloud_local_path }}/config/config.php"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: "0o640"
|
||||
|
||||
- name: Set config dir permissions
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
dest: "{{ nextcloud_local_path }}/config"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: "0o750"
|
||||
|
||||
- name: Check writable dirs
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
dest: "{{ nextcloud_local_path }}/{{ item }}"
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "g+w"
|
||||
recurse: true
|
||||
loop:
|
||||
- "apps"
|
||||
- "data"
|
||||
|
||||
- name: Run occ upgrade
|
||||
become: true
|
||||
become_user: www-data
|
||||
ansible.builtin.command:
|
||||
cmd: "php occ upgrade"
|
||||
chdir: "{{ nextcloud_local_path }}"
|
||||
changed_when: false
|
60
roles/nextcloud/templates/config.php.j2
Normal file
60
roles/nextcloud/templates/config.php.j2
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
'dbtype' => 'pgsql',
|
||||
'version' => '{{ nextcloud_version }}',
|
||||
'dbname' => '{{ nextcloud_pg_database }}',
|
||||
'dbhost' => 'localhost',
|
||||
'dbtableprefix' => 'oc_',
|
||||
'dbuser' => '{{ nextcloud_pg_role }}',
|
||||
'dbpassword' => '{{ nextcloud_pg_password }}',
|
||||
'installed' => true,
|
||||
'instanceid' => '507bf5ef0f4bd',
|
||||
'theme' => '',
|
||||
'trusted_domains' =>
|
||||
array (
|
||||
0 => '{{ nextcloud_access_url }}',
|
||||
),
|
||||
'mail_domain' => 'libertus.eu',
|
||||
'mail_from_address' => 'nextcloud',
|
||||
'loglevel' => 1,
|
||||
'log_type' => 'errorlog',
|
||||
'secret' => '{{ nextcloud_secret }}',
|
||||
'trashbin_retention_obligation' => 'auto',
|
||||
'overwrite.cli.url' => 'https://{{ nextcloud_access_url }}',
|
||||
'updater.release.channel' => 'stable',
|
||||
'user_backends' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'class' => '\\OCA\\UserExternal\\IMAP',
|
||||
'arguments' =>
|
||||
array (
|
||||
0 => 'imap.libertus.eu',
|
||||
1 => 993,
|
||||
2 => 'ssl',
|
||||
),
|
||||
),
|
||||
),
|
||||
'objectstore' =>
|
||||
array (
|
||||
'class' => '\\OC\\Files\\ObjectStore\\S3',
|
||||
'arguments' =>
|
||||
array (
|
||||
'bucket' => 'nextcloud-libertus',
|
||||
'autocreate' => false,
|
||||
'key' => 'GK7f69982ab6b981b3fa5ec230',
|
||||
'secret' => '{{ nextcloud_objectstore_secret }}',
|
||||
'hostname' => 'garage.mateu.be',
|
||||
'port' => 443,
|
||||
'use_ssl' => true,
|
||||
'region' => 'garage',
|
||||
'use_path_style' => true,
|
||||
),
|
||||
),
|
||||
'maintenance' => false,
|
||||
'passwordsalt' => '{{ nextcloud_passwordsalt }}',
|
||||
'app_install_overwrite' =>
|
||||
array (
|
||||
0 => 'user_external',
|
||||
),
|
||||
);
|
8
roles/nextcloud/vars/main.yml
Normal file
8
roles/nextcloud/vars/main.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
nextcloud_version: "30.0.6"
|
||||
nextcloud_url: "https://download.nextcloud.com/server/releases/nextcloud-{{ nextcloud_version }}.tar.bz2"
|
||||
|
||||
nextcloud_access_url: "{{ web_hostname | selectattr('type', 'defined') | selectattr('type', '==', 'nextcloud') | map(attribute='host') | first }}"
|
||||
|
||||
nextcloud_local_path: "/srv/http/{{ nextcloud_access_url }}"
|
Reference in New Issue
Block a user