---
- when: NEXTCLOUD_HPB_SIGNALING_ENABLED | bool
block:
- name: "π Assert Janus joins the host network only in compose mode"
ansible.builtin.assert:
that: IS_COMPOSE_MODE
fail_msg: >-
services.talk.network_mode host gives Janus the host network namespace,
which docker stack deploy cannot provide. Use bridge in swarm mode.
quiet: true
when: NEXTCLOUD_HPB_JANUS_HOST_NETWORK | bool
- name: "π Assert Talk has the TURN server its calls relay through"
ansible.builtin.assert:
that: NEXTCLOUD_HPB_TURN_ACTIVE_SERVER | length > 0
fail_msg: >-
services.talk.enabled is true, but {{ NEXTCLOUD_HPB_TURN_STANDALONE_ROLE }} is not deployed
on this host, so Talk would hand out no STUN or TURN server and calls behind NAT would carry
no media. Deploy {{ NEXTCLOUD_HPB_TURN_STANDALONE_ROLE }} or set services.talk.enabled to false.
quiet: true
when: IS_STACK_HOST | bool
- name: "π§© load docker, db and proxy for {{ application_id }}"
include_role:
name: sys-stk-full
vars:
compose_handlers_flush: false
application_id: web-app-nextcloud
webserver_client_max_body_size: 10G
- name: "π Deploy '{{ NEXTCLOUD_INIT_GATE_HOST }}'"
copy:
src: "{{ NEXTCLOUD_INIT_GATE_SRC }}"
dest: "{{ NEXTCLOUD_INIT_GATE_HOST }}"
mode: "0755"
when: IS_STACK_HOST | bool
notify:
- compose-build
- compose-up
- when: NEXTCLOUD_WHITEBOARD_ENABLED | bool
block:
- name: "π Create '{{ NEXTCLOUD_WHITEBOARD_SERVICE_DIRECTORY }}' Directory"
file:
path: "{{ NEXTCLOUD_WHITEBOARD_SERVICE_DIRECTORY }}"
state: directory
owner: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
group: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
mode: "0755"
- name: "π Deploy Whiteboard Dockerfile to {{ NEXTCLOUD_WHITEBOARD_SERVICE_DOCKERFILE }}"
stack_host_copy:
src: "Dockerfiles/Whiteboard/Dockerfile"
dest: "{{ NEXTCLOUD_WHITEBOARD_SERVICE_DOCKERFILE }}"
notify:
- compose-build
- compose-up
- name: "π create {{ NEXTCLOUD_HOST_CONF_ADD_PATH }}"
file:
path: "{{ NEXTCLOUD_HOST_CONF_ADD_PATH }}"
state: directory
owner: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
group: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
mode: "0755"
- name: "π Render Nextcloud config at {{ NEXTCLOUD_HOST_CONF_ADD_PATH }} (local + peers)"
ansible.builtin.include_tasks:
file: "{{ lookup('path_absolute', 'roles/sys-svc-compose/tasks/utils/render_replicated_templates.yml') }}"
vars:
role_templates:
- src_glob: "config/*.j2"
dest_dir: "{{ NEXTCLOUD_HOST_CONF_ADD_PATH }}"
owner: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
group: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
mode: "0644"
- name: "π NEXTCLOUD | Ensure host-mounted config files ownership/permissions (recursive)"
ansible.builtin.file:
path: "{{ NEXTCLOUD_HOST_CONF_ADD_PATH }}"
state: directory
recurse: true
owner: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
group: "{{ NEXTCLOUD_DOCKER_USER_ID }}"
mode: "u=rwX,g=rX,o=rX"
- name: "π Render Nextcloud internal nginx config (local + swarm peers)"
ansible.builtin.include_tasks:
file: "{{ lookup('path_absolute', 'roles/sys-svc-compose/tasks/utils/render_replicated_templates.yml') }}"
vars:
role_templates:
- src: "docker.conf.j2"
dest: "{{ NEXTCLOUD_HOST_NGINX_PATH }}"
- name: "π Render the php-fpm pool sizing (local + swarm peers)"
ansible.builtin.include_tasks:
file: "{{ lookup('path_absolute', 'roles/sys-svc-compose/tasks/utils/render_replicated_templates.yml') }}"
vars:
role_templates:
- src: "fpm-pool.conf.j2"
dest: "{{ NEXTCLOUD_HOST_FPM_POOL_PATH }}"
- when: NEXTCLOUD_HPB_SIGNALING_ENABLED | bool
block:
- name: "π Create the Talk build directories"
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0755"
loop:
- "{{ NEXTCLOUD_HPB_JANUS_BUILD_DIRECTORY }}"
- "{{ NEXTCLOUD_RECORDING_BUILD_DIRECTORY }}"
- name: "π Deploy the Talk Dockerfiles that build Janus and the recording server"
stack_host_copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
loop:
- { src: "Dockerfiles/Janus/Dockerfile", dest: "{{ NEXTCLOUD_HPB_JANUS_DOCKERFILE }}" }
- { src: "Dockerfiles/Recording/Dockerfile", dest: "{{ NEXTCLOUD_RECORDING_DOCKERFILE }}" }
notify:
- compose-build
- compose-up
- name: "π Render the Janus, signaling and recording configs (local + swarm peers)"
ansible.builtin.include_tasks:
file: "{{ lookup('path_absolute', 'roles/sys-svc-compose/tasks/utils/render_replicated_templates.yml') }}"
vars:
role_templates:
- src: "janus.jcfg.j2"
dest: "{{ NEXTCLOUD_HPB_JANUS_CONFIG_HOST }}"
mode: "0644"
- src: "signaling.conf.j2"
dest: "{{ NEXTCLOUD_HPB_SIGNALING_CONFIG_HOST }}"
owner: "{{ NEXTCLOUD_HPB_SIGNALING_USER_ID }}"
group: "{{ NEXTCLOUD_HPB_SIGNALING_USER_ID }}"
mode: "0400"
- src: "recording.conf.j2"
dest: "{{ NEXTCLOUD_RECORDING_CONFIG_HOST }}"
owner: "{{ NEXTCLOUD_RECORDING_USER_ID }}"
group: "{{ NEXTCLOUD_RECORDING_USER_ID }}"
mode: "0400"