126 lines
3.8 KiB
YAML
126 lines
3.8 KiB
YAML
---
|
|
- 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/{{ item }}'
|
|
loop: '{{ services.riot.domains }}'
|
|
|
|
- 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
|