digitalboard.core/roles/nextcloud/tasks/main.yml

75 lines
2.1 KiB
YAML

#SPDX-License-Identifier: MIT-0
---
# tasks file for nextcloud
- name: Create docker compose directory
file:
path: "{{ nextcloud_docker_compose_dir }}"
state: directory
mode: '0755'
- name: Create nextcloud data directory
file:
path: "{{ nextcloud_docker_volume_dir }}/data"
state: directory
mode: '0755'
- name: Create postgres data directory
file:
path: "{{ nextcloud_docker_volume_dir }}/postgresql"
state: directory
mode: '0755'
- name: Create docker-compose file for nextcloud
template:
src: docker-compose.yml.j2
dest: "{{ nextcloud_docker_compose_dir }}/docker-compose.yml"
mode: '0644'
- name: Create nginx template
template:
src: nginx.conf.j2
dest: "{{ nextcloud_docker_compose_dir }}/nginx.conf"
mode: '0644'
notify: Restart nginx container
- name: Create database initialization script
template:
src: init-db.sql.j2
dest: "{{ nextcloud_docker_compose_dir }}/init-db.sql"
mode: '0644'
- name: Start nextcloud container
community.docker.docker_compose_v2:
project_src: "{{ nextcloud_docker_compose_dir }}"
state: present
- name: Wait for Nextcloud to be ready
ansible.builtin.shell:
cmd: docker compose exec -T nextcloud php /var/www/html/occ status --output=json
chdir: "{{ nextcloud_docker_compose_dir }}"
retries: 30
delay: 5
register: nextcloud_ready
until:
- nextcloud_ready.rc == 0
- (nextcloud_ready.stdout | from_json).installed == true
changed_when: false
- name: Deploy local network config file
ansible.builtin.template:
src: local-network.config.php.j2
dest: "{{ nextcloud_docker_volume_dir }}/nextcloud/config/local-network.config.php"
owner: www-data
group: www-data
mode: '0640'
- name: Install nextcloud plugins
ansible.builtin.include_tasks: plugins.yml
- name: Configure nextcloud collabora
ansible.builtin.include_tasks: collabora.yml
when: nextcloud_enable_collabora
- name: Configure OIDC providers
ansible.builtin.include_tasks: oidc.yml
when: nextcloud_oidc_providers | length > 0 or nextcloud_oidc_providers_removed | length > 0