ansible/roles/docker/tasks/services/matrix_riot.yml

128 lines
3.8 KiB
YAML
Raw Normal View History

2019-02-09 10:20:11 +00:00
---
- name: create matrix volume folders
2022-11-26 08:52:41 +00:00
ansible.builtin.file:
name: '{{ services.matrix.volume_folder }}/{{ volume }}'
state: directory
2022-11-26 08:52:41 +00:00
owner: '991'
group: '991'
loop:
2022-11-26 08:52:41 +00:00
- data
- data/uploads
- data/media
loop_control:
loop_var: volume
- name: create matrix DB folder
2022-11-26 08:52:41 +00:00
ansible.builtin.file:
name: '{{ services.matrix.volume_folder }}/db'
state: directory
- name: create riot volume folders
2022-11-26 08:52:41 +00:00
ansible.builtin.file:
name: '{{ services.riot.volume_folder }}/{{ volume }}'
state: directory
loop:
2022-11-26 08:52:41 +00:00
- data
loop_control:
loop_var: volume
2019-02-09 10:20:11 +00:00
- name: upload riot config.json
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
src: files/configs/riot/config.json
2022-11-26 08:52:41 +00:00
dest: '{{ services.riot.volume_folder }}/data/config.json'
- name: upload riot.im.conf
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
src: files/configs/riot/riot.im.conf
2022-11-26 08:52:41 +00:00
dest: '{{ services.riot.volume_folder }}/data/riot.im.conf'
- name: upload vhost config for root domain
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
src: files/configs/matrix/vhost-root
2022-11-26 08:52:41 +00:00
dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ base_domain }}'
2019-03-05 08:06:19 +00:00
- name: upload vhost config for matrix domain
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
2019-03-05 08:06:19 +00:00
src: files/configs/matrix/vhost-matrix
2022-11-26 08:52:41 +00:00
dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.matrix.domain
}}'
2019-03-05 08:06:19 +00:00
- name: upload vhost config for riot domain
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
src: files/configs/matrix/vhost-riot
2022-11-26 09:47:37 +00:00
dest: '{{ services.nginx_proxy.volume_folder }}/vhost/{{ domain }}'
2022-11-26 08:52:41 +00:00
loop: '{{ services.riot.domains }}'
2022-11-26 09:47:37 +00:00
loop_control:
loop_var: domain
- name: upload homeserver.yaml
2022-11-26 08:52:41 +00:00
ansible.builtin.template:
src: files/configs/matrix/homeserver.yaml.j2
dest: '{{ services.matrix.volume_folder }}/data/homeserver.yaml'
- name: upload matrix logging config
2022-11-26 08:52:41 +00:00
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
2022-11-26 08:52:41 +00:00
community.docker.docker_compose:
project_name: matrix
2022-11-26 08:52:41 +00:00
pull: true
definition:
2022-11-26 08:52:41 +00:00
version: '3.6'
services:
matrix_db:
container_name: matrix_db
image: postgres:10
restart: unless-stopped
networks:
- matrix
volumes:
2022-11-26 08:52:41 +00:00
- '{{ services.matrix.volume_folder }}/db:/var/lib/postgresql/data'
environment:
2022-11-26 08:52:41 +00:00
POSTGRES_USER: synapse
POSTGRES_PASSWORD: '{{ postgres_passwords.matrix }}'
matrix_app:
container_name: matrix
image: matrixdotorg/synapse:{{ services.matrix.version }}
restart: unless-stopped
networks:
- matrix
2020-02-26 19:55:21 +00:00
- external_services
volumes:
2022-11-26 08:52:41 +00:00
- '{{ services.matrix.volume_folder }}/data:/data'
environment:
2022-11-26 08:52:41 +00:00
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:
2022-11-26 08:52:41 +00:00
- '{{ services.riot.volume_folder }}/data:/data'
environment:
VIRTUAL_HOST: "{{ services.riot.domains|join(',') }}"
2022-11-26 08:52:41 +00:00
VIRTUAL_PORT: '8080'
LETSENCRYPT_HOST: "{{ services.riot.domains|join(',') }}"
2022-11-26 08:52:41 +00:00
LETSENCRYPT_EMAIL: '{{ letsencrypt_email }}'
2019-02-09 17:49:03 +00:00
2020-02-26 19:55:21 +00:00
networks:
external_services:
external:
name: external_services
matrix:
2022-11-26 08:52:41 +00:00
name: matrix