125 lines
3.4 KiB
YAML
125 lines
3.4 KiB
YAML
---
|
|
- name: create matrix volume folders
|
|
file:
|
|
name: "{{ 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: "{{ matrix.volume_folder }}/db"
|
|
state: "directory"
|
|
|
|
- name: create riot volume folders
|
|
file:
|
|
name: "{{ 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: "{{ riot.volume_folder }}/data/config.json"
|
|
|
|
- name: upload riot.im.conf
|
|
template:
|
|
src: files/configs/riot/riot.im.conf
|
|
dest: "{{ riot.volume_folder }}/data/riot.im.conf"
|
|
|
|
- name: upload vhost config for root domain
|
|
template:
|
|
src: files/configs/matrix/vhost-root
|
|
dest: "{{ nginx.volume_folder }}/vhost/{{ base_domain }}"
|
|
|
|
- name: upload vhost config for matrix domain
|
|
template:
|
|
src: files/configs/matrix/vhost-matrix
|
|
dest: "{{ nginx.volume_folder }}/vhost/{{ matrix.domain }}"
|
|
|
|
- name: upload vhost config for riot domain
|
|
template:
|
|
src: files/configs/matrix/vhost-riot
|
|
dest: "{{ nginx.volume_folder }}/vhost/{{ item }}"
|
|
loop: "{{ riot.domains }}"
|
|
|
|
- name: upload homeserver.yaml
|
|
template:
|
|
src: "files/configs/matrix/homeserver.yaml.j2"
|
|
dest: "{{ matrix.volume_folder }}/data/homeserver.yaml"
|
|
|
|
- name: upload matrix logging config
|
|
template:
|
|
src: "files/configs/matrix/matrix.data.coop.log.config"
|
|
dest: "{{ 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:
|
|
- "{{ 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:v1.63.1
|
|
restart: unless-stopped
|
|
networks:
|
|
- matrix
|
|
- external_services
|
|
volumes:
|
|
- "{{ matrix.volume_folder }}/data:/data"
|
|
environment:
|
|
SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml"
|
|
SYNAPSE_CACHE_FACTOR: "2"
|
|
SYNAPSE_LOG_LEVEL: "INFO"
|
|
VIRTUAL_HOST: "{{ matrix.domain }}"
|
|
VIRTUAL_PORT: "8008"
|
|
LETSENCRYPT_HOST: "{{ matrix.domain }}"
|
|
LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}"
|
|
|
|
riot:
|
|
container_name: riot_app
|
|
image: avhost/docker-matrix-riot:v1.11.0
|
|
restart: unless-stopped
|
|
networks:
|
|
- matrix
|
|
- external_services
|
|
expose:
|
|
- 8080
|
|
volumes:
|
|
- "{{ riot.volume_folder }}/data:/data"
|
|
environment:
|
|
VIRTUAL_HOST: "{{ riot.domains|join(',') }}"
|
|
VIRTUAL_PORT: "8080"
|
|
LETSENCRYPT_HOST: "{{ riot.domains|join(',') }}"
|
|
LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}"
|
|
|
|
networks:
|
|
external_services:
|
|
external:
|
|
name: external_services
|
|
matrix:
|
|
name: "matrix"
|