120 lines
3.5 KiB
YAML
120 lines
3.5 KiB
YAML
---
|
|
- 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: files/configs/riot/config.json
|
|
dest: "{{ services.riot.volume_folder }}/data/config.json"
|
|
|
|
- name: upload riot.im.conf
|
|
template:
|
|
src: files/configs/riot/riot.im.conf
|
|
dest: "{{ services.riot.volume_folder }}/data/riot.im.conf"
|
|
|
|
- name: upload vhost config for matrix domain
|
|
template:
|
|
src: files/configs/matrix/vhost-matrix
|
|
dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.matrix.domain }}"
|
|
|
|
- name: upload vhost config for riot domain
|
|
template:
|
|
src: files/configs/matrix/vhost-riot
|
|
dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ item }}"
|
|
loop: "{{ services.riot.domains }}"
|
|
|
|
- name: upload homeserver.yaml
|
|
template:
|
|
src: "files/configs/matrix/homeserver.yaml.j2"
|
|
dest: "{{ services.matrix.volume_folder }}/data/homeserver.yaml"
|
|
|
|
- name: upload matrix logging config
|
|
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
|
|
docker_compose:
|
|
project_name: matrix
|
|
pull: yes
|
|
definition:
|
|
version: "3.6"
|
|
services:
|
|
matrix_db:
|
|
container_name: matrix_db
|
|
image: "postgres:{{ services.matrix.postgres_version }}"
|
|
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"
|