--- - name: create matrix volume folders 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 file: name: "{{ services.matrix.volume_folder }}/db" state: "directory" - name: create riot volume folders file: name: "{{ services.riot.volume_folder }}/{{ volume }}" state: directory loop: - "data" loop_control: loop_var: volume - name: upload riot config.json template: src: riot.config.json.j2 dest: "{{ services.riot.volume_folder }}/data/config.json" - name: upload riot.im.conf copy: src: configs/riot/riot.im.conf dest: "{{ services.riot.volume_folder }}/data/riot.im.conf" - name: upload vhost config for root domain copy: src: configs/vhost/root dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ base_domain }}" - name: upload vhost config for matrix domain copy: src: configs/vhost/matrix dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.matrix.domain }}" - name: upload vhost config for riot domains copy: src: configs/vhost/riot dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ item }}" loop: "{{ services.riot.domains }}" - name: upload homeserver.yaml template: src: matrix.homeserver.yaml.j2 dest: "{{ services.matrix.volume_folder }}/data/homeserver.yaml" - name: upload matrix logging config copy: src: configs/matrix/matrix.data.coop.log.config dest: "{{ services.matrix.volume_folder }}/data/matrix.data.coop.log.config" - name: set up matrix and riot docker_compose: project_name: matrix pull: yes 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"