--- - name: create matrix volume folders ansible.builtin.file: name: '{{ services.matrix.volume_folder }}/{{ volume }}' state: directory owner: '991' group: '991' loop: - data - data/uploads - data/media loop_control: loop_var: volume - name: create matrix DB folder ansible.builtin.file: name: '{{ services.matrix.volume_folder }}/db' state: directory - name: create riot volume folders ansible.builtin.file: name: '{{ services.riot.volume_folder }}/{{ volume }}' state: directory loop: - data loop_control: loop_var: volume - name: upload riot config.json ansible.builtin.template: src: files/configs/riot/config.json dest: '{{ services.riot.volume_folder }}/data/config.json' - name: upload riot.im.conf ansible.builtin.template: src: files/configs/riot/riot.im.conf dest: '{{ services.riot.volume_folder }}/data/riot.im.conf' - name: upload vhost config for root domain ansible.builtin.template: src: files/configs/matrix/vhost-root dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ base_domain }}' - name: upload vhost config for matrix domain ansible.builtin.template: src: files/configs/matrix/vhost-matrix dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.matrix.domain }}' - name: upload vhost config for riot domain ansible.builtin.template: src: files/configs/matrix/vhost-riot dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ domain }}' loop: '{{ services.riot.domains }}' loop_control: loop_var: domain - name: upload homeserver.yaml ansible.builtin.template: src: files/configs/matrix/homeserver.yaml.j2 dest: '{{ services.matrix.volume_folder }}/data/homeserver.yaml' - name: upload matrix logging config ansible.builtin.template: src: files/configs/matrix/matrix.data.coop.log.config dest: '{{ services.matrix.volume_folder }}/data/matrix.data.coop.log.config' - name: set up matrix and riot community.docker.docker_compose: project_name: matrix pull: true definition: version: '3.6' services: matrix_db: container_name: matrix_db image: postgres:10 restart: unless-stopped networks: - matrix volumes: - '{{ services.matrix.volume_folder }}/db:/var/lib/postgresql/data' environment: POSTGRES_USER: synapse POSTGRES_PASSWORD: '{{ postgres_passwords.matrix }}' matrix_app: container_name: matrix image: matrixdotorg/synapse:{{ services.matrix.version }} restart: unless-stopped networks: - matrix - external_services volumes: - '{{ services.matrix.volume_folder }}/data:/data' environment: SYNAPSE_CONFIG_PATH: /data/homeserver.yaml SYNAPSE_CACHE_FACTOR: '2' SYNAPSE_LOG_LEVEL: INFO VIRTUAL_HOST: '{{ services.matrix.domain }}' VIRTUAL_PORT: '8008' LETSENCRYPT_HOST: '{{ services.matrix.domain }}' LETSENCRYPT_EMAIL: '{{ letsencrypt_email }}' riot: container_name: riot_app image: avhost/docker-matrix-riot:{{ services.riot.version }} restart: unless-stopped networks: - matrix - external_services expose: - 8080 volumes: - '{{ services.riot.volume_folder }}/data:/data' environment: VIRTUAL_HOST: "{{ services.riot.domains|join(',') }}" VIRTUAL_PORT: '8080' LETSENCRYPT_HOST: "{{ services.riot.domains|join(',') }}" LETSENCRYPT_EMAIL: '{{ letsencrypt_email }}' networks: external_services: external: name: external_services matrix: name: matrix