From bce1daf5a68e9dec8f3af1b1435c6a4d65e05ed3 Mon Sep 17 00:00:00 2001 From: Bert-Jan Fikse Date: Fri, 16 Jan 2026 15:53:36 +0100 Subject: [PATCH] feat: add provisioning of apps to nextcloud role --- roles/nextcloud/defaults/main.yml | 11 ++++++++++- roles/nextcloud/tasks/plugins.yml | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/roles/nextcloud/defaults/main.yml b/roles/nextcloud/defaults/main.yml index a080517..2e5a61e 100644 --- a/roles/nextcloud/defaults/main.yml +++ b/roles/nextcloud/defaults/main.yml @@ -46,4 +46,13 @@ nextcloud_admin_password: admin nextcloud_memory_limit_mb: 1024 nextcloud_upload_limit_mb: 2048 -nextcloud_scale_factor: 2 \ No newline at end of file +nextcloud_scale_factor: 2 + +# Non-default apps to install and enable +nextcloud_apps_to_install: + - groupfolders + - richdocuments + - spreed + - user_ldap + - user_oidc + - whiteboard \ No newline at end of file diff --git a/roles/nextcloud/tasks/plugins.yml b/roles/nextcloud/tasks/plugins.yml index 32d7c64..2a6d8a5 100644 --- a/roles/nextcloud/tasks/plugins.yml +++ b/roles/nextcloud/tasks/plugins.yml @@ -1,3 +1,25 @@ #SPDX-License-Identifier: MIT-0 --- # tasks file for installing Nextcloud plugins/apps + +- name: Install Nextcloud apps + ansible.builtin.shell: + cmd: docker compose exec -T nextcloud php /var/www/html/occ app:install {{ item }} + chdir: "{{ nextcloud_docker_compose_dir }}" + loop: "{{ nextcloud_apps_to_install }}" + register: app_install_result + changed_when: "'installed' in app_install_result.stdout" + failed_when: + - app_install_result.rc != 0 + - "'already installed' not in app_install_result.stdout" + +- name: Enable Nextcloud apps + ansible.builtin.shell: + cmd: docker compose exec -T nextcloud php /var/www/html/occ app:enable {{ item }} + chdir: "{{ nextcloud_docker_compose_dir }}" + loop: "{{ nextcloud_apps_to_install }}" + register: app_enable_result + changed_when: "'enabled' in app_enable_result.stdout" + failed_when: + - app_enable_result.rc != 0 + - "'already enabled' not in app_enable_result.stdout"