2023-12-22 10:23:42 +01:00
---
2025-02-04 18:14:37 +01:00
- name : "include docker-central-database"
include_role :
name : docker-central-database
2024-01-02 21:13:34 +01:00
2025-02-21 09:28:01 +01:00
- name : "include role for {{application_id}} to recieve certs & do modification routines"
include_role :
name : nginx-https-get-cert-modify-all
2024-01-18 20:53:14 +01:00
vars :
2025-01-30 15:04:23 +01:00
domain : "{{domains.matrix_synapse}}"
2025-02-12 12:41:13 +01:00
http_port : "{{ports.localhost.http.matrix_synapse}}"
2024-01-18 20:53:14 +01:00
2024-01-19 11:52:08 +01:00
- name : create {{well_known_directory}}
file :
path : "{{well_known_directory}}"
state : directory
mode : '0755'
- name : create {{well_known_directory}}server
template :
src : "well-known.j2"
dest : "{{well_known_directory}}server"
2025-01-30 15:04:23 +01:00
- name : create {{domains.matrix_synapse}}.conf
2024-01-18 20:53:14 +01:00
template :
src : "templates/nginx.conf.j2"
2025-01-31 13:14:07 +01:00
dest : "{{nginx.directories.http.servers}}{{domains.matrix_synapse}}.conf"
2023-12-22 10:23:42 +01:00
vars :
2025-02-21 06:32:12 +01:00
domain : "{{domains.matrix_synapse}}" # Didn't work in the past. May it works now. This does not seem to work @todo Check how to solve without declaring set_fact, seems a bug at templates
2025-02-12 12:41:13 +01:00
http_port : "{{ports.localhost.http.matrix_synapse}}"
2024-01-18 20:53:14 +01:00
notify : restart nginx
2023-12-22 10:23:42 +01:00
2025-02-19 02:00:41 +01:00
- name : "include role nginx-domain-setup for {{application_id}}"
include_role :
name : nginx-domain-setup
2023-12-22 10:23:42 +01:00
vars :
2025-01-30 15:04:23 +01:00
domain : "{{domains.matrix_element}}"
2025-02-12 12:41:13 +01:00
http_port : "{{ports.localhost.http.matrix_element}}"
2023-12-22 10:23:42 +01:00
2024-01-15 01:00:59 +01:00
- name : include create-and-seed-database.yml for multiple bridges
include_tasks : create-and-seed-database.yml
vars :
2024-01-19 11:52:08 +01:00
database_password : "{{ item.database_password }}"
database_username : "{{ item.database_username }}"
database_name : "{{ item.database_name }}"
2024-01-15 01:00:59 +01:00
loop : "{{ bridges }}"
2024-01-18 18:59:11 +01:00
# The following taks are necessary because a clean setup is necessary
- name : shut down docker compose project
command :
2025-01-30 15:04:23 +01:00
cmd : docker-compose -p "{{application_id}}" down
2025-02-04 18:14:37 +01:00
chdir : "{{ docker_compose.directories.instance }}"
2024-01-18 18:59:11 +01:00
- name : "cleanup project folder"
file :
2025-02-04 18:14:37 +01:00
path : "{{docker_compose.directories.instance}}mautrix/"
2024-01-18 18:59:11 +01:00
state : absent
2024-01-15 08:26:05 +01:00
- name : "create bridge folders"
2024-01-14 20:08:08 +01:00
file :
2025-02-04 18:14:37 +01:00
path : "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}"
2024-01-14 20:08:08 +01:00
state : directory
mode : 0755
2024-01-15 01:00:59 +01:00
loop : "{{ bridges }}"
2024-01-14 20:08:08 +01:00
2024-01-15 01:00:59 +01:00
- name : add multiple mautrix bridge configuration
2023-12-22 10:23:42 +01:00
template :
2024-01-18 21:31:52 +01:00
src : "mautrix/{{item.bridge_name}}.config.yml.j2"
2025-02-04 18:14:37 +01:00
dest : "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/config.yaml"
2024-01-15 01:00:59 +01:00
loop : "{{ bridges }}"
2024-01-18 18:59:11 +01:00
notify : docker compose project setup
2024-01-14 20:08:08 +01:00
- name : add element configuration
template :
src : "element.config.json.j2"
2025-02-04 18:14:37 +01:00
dest : "{{docker_compose.directories.instance}}element-config.json"
2023-12-30 16:49:37 +01:00
notify : docker compose project setup
2023-12-22 10:23:42 +01:00
2024-01-14 20:08:08 +01:00
- name : add synapse homeserver configuration
2023-12-22 10:23:42 +01:00
template :
2024-01-18 18:59:11 +01:00
src : "synapse/homeserver.yaml.j2"
2025-02-04 18:14:37 +01:00
dest : "{{docker_compose.directories.instance}}homeserver.yaml"
2023-12-30 16:49:37 +01:00
notify : docker compose project setup
2023-12-22 10:23:42 +01:00
2024-01-14 20:08:08 +01:00
- name : add synapse log configuration
2023-12-22 10:23:42 +01:00
template :
2024-01-18 18:59:11 +01:00
src : "synapse/log.config.j2"
2025-02-04 18:14:37 +01:00
dest : "{{docker_compose.directories.instance}}{{domains.matrix_synapse}}.log.config"
2023-12-30 16:49:37 +01:00
notify : docker compose project setup
2023-12-22 10:23:42 +01:00
# https://github.com/matrix-org/synapse/issues/6303
- name : set correct folder permissions
command :
2025-01-30 15:04:23 +01:00
cmd : "docker run --rm --mount type=volume,src=matrix_synapse_data,dst=/data -e SYNAPSE_SERVER_NAME={{domains.matrix_synapse}} -e SYNAPSE_REPORT_STATS=no --entrypoint /bin/sh matrixdotorg/synapse:latest -c 'chown -vR 991:991 /data'"
2023-12-22 10:23:42 +01:00
- name : add docker-compose.yml
template :
src : "docker-compose.yml.j2"
2025-02-04 18:14:37 +01:00
dest : "{{docker_compose.directories.instance}}docker-compose.yml"
2023-12-30 16:49:37 +01:00
notify : docker compose project setup
2024-01-14 20:08:08 +01:00
2024-11-07 16:42:45 -03:00
# Pull image when update is wished.
# @todo This should be moved to update-docker
- name : docker compose pull
command :
2025-01-30 15:04:23 +01:00
cmd : docker-compose -p "{{application_id}}" pull
2025-02-04 18:14:37 +01:00
chdir : "{{docker_compose.directories.instance}}"
2024-11-07 16:42:45 -03:00
when : mode_update | bool
2024-01-20 12:46:07 +01:00
- name : docker compose project setup
command :
2025-02-11 00:16:54 +01:00
cmd : "docker-compose -p {{application_id}} up -d{% if mode_cleanup | bool %} --remove-orphans{% endif %}"
2025-02-04 18:14:37 +01:00
chdir : "{{docker_compose.directories.instance}}"
2024-01-20 12:46:07 +01:00
environment :
COMPOSE_HTTP_TIMEOUT : 600
DOCKER_CLIENT_TIMEOUT : 600
register : result
until : result is succeeded
retries : 12
delay : 30
2024-01-14 20:08:08 +01:00
2024-01-18 19:44:27 +01:00
- name : wait for registration files
wait_for :
2025-02-04 18:14:37 +01:00
path : "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/registration.yaml"
2024-01-18 19:44:27 +01:00
state : present
timeout : 120
2024-01-15 01:00:59 +01:00
loop : "{{ bridges }}"
2024-01-14 20:08:08 +01:00
2024-01-18 19:44:27 +01:00
- name : "change file permissions"
file :
2025-02-04 18:14:37 +01:00
path : "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/registration.yaml"
2024-01-18 19:44:27 +01:00
mode : 0755
2024-01-19 15:12:18 +01:00
loop : "{{ bridges }}"
- name : create admin account
command :
2025-02-03 11:44:13 +01:00
cmd : docker compose exec -it synapse register_new_matrix_user -u {{applications.matrix.administrator_username}} -p {{matrix_admin_password}} -a -c /data/homeserver.yaml http://localhost:8008
2025-02-04 18:14:37 +01:00
chdir : "{{ docker_compose.directories.instance }}"
2024-01-19 15:12:18 +01:00
ignore_errors : true
2025-02-19 03:46:25 +01:00
when : applications.matrix.setup | bool
2024-01-20 22:29:53 +01:00
- name : create chatgpt bot
command :
cmd : docker compose exec -it synapse register_new_matrix_user -u chatgptbot -p {{matrix_chatgpt_bridge_user_password}} -a -c /data/homeserver.yaml http://localhost:8008
2025-02-04 18:14:37 +01:00
chdir : "{{ docker_compose.directories.instance }}"
2024-01-20 22:29:53 +01:00
ignore_errors : true
2025-02-19 03:46:25 +01:00
when : applications.matrix.setup | bool