--- - name: Create Nextcloud directories ansible.builtin.file: path: "{{ item }}" state: directory mode: '0755' loop: - "{{ nextcloud_data_dir }}" - "{{ nextcloud_data_dir }}/data" - name: Deploy Nextcloud docker-compose ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ nextcloud_data_dir }}/docker-compose.yml" mode: '0644' notify: restart nextcloud - name: Start Nextcloud community.docker.docker_compose_v2: project_src: "{{ nextcloud_data_dir }}" state: present - name: Wait for Nextcloud to be ready ansible.builtin.command: cmd: docker exec -u www-data nextcloud php occ status --output=json register: nc_status until: (nc_status.stdout | from_json).installed is defined and (nc_status.stdout | from_json).installed retries: 30 delay: 10 changed_when: false - name: Copy tenant logo into Nextcloud container volume ansible.builtin.copy: src: "{{ tenant_logo_local_path }}" dest: "{{ nextcloud_data_dir }}/data/sovereign-logo.png" mode: '0644' when: tenant_logo_local_path | default('') != '' - name: Configure Nextcloud theming — name and colour ansible.builtin.command: cmd: docker exec -u www-data nextcloud php occ theming:config {{ item.key }} "{{ item.value }}" loop: - { key: name, value: "{{ tenant_name }}" } - { key: color, value: "{{ tenant_primary_color | default('#2563eb') }}" } changed_when: false - name: Configure Nextcloud theming — logo ansible.builtin.command: cmd: docker exec -u www-data nextcloud php occ theming:config logo /var/www/html/sovereign-logo.png when: tenant_logo_local_path | default('') != '' changed_when: false