computer-playbook/roles/docker-matrix-compose/tasks/main.yml

144 lines
4.7 KiB
YAML
Raw Normal View History

---
2024-01-19 15:12:18 +01:00
- name: "include docker/compose/database.yml"
include_tasks: docker/compose/database.yml
2024-01-18 20:53:14 +01:00
- name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml
vars:
domain: "{{synapse_domain}}"
http_port: "{{synapse_http_port}}"
- 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"
- name: create {{synapse_domain}}.conf
2024-01-18 20:53:14 +01:00
template:
src: "templates/nginx.conf.j2"
dest: "{{nginx_servers_directory}}{{synapse_domain}}.conf"
vars:
domain: "{{synapse_domain}}"
http_port: "{{synapse_http_port}}"
2024-01-18 20:53:14 +01:00
notify: restart nginx
2024-01-18 20:53:14 +01:00
- name: "include tasks nginx-docker-proxy-domain.yml for element"
include_tasks: nginx-docker-proxy-domain.yml
vars:
domain: "{{element_domain}}"
http_port: "{{element_http_port}}"
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:
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:
cmd: docker-compose -p "{{docker_compose_project_name}}" down
chdir: "{{ docker_compose_instance_directory }}"
- name: "cleanup project folder"
file:
path: "{{docker_compose_instance_directory}}mautrix/"
2024-01-18 18:59:11 +01:00
state: absent
- name: "create bridge folders"
file:
2024-01-18 21:31:52 +01:00
path: "{{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}"
state: directory
mode: 0755
2024-01-15 01:00:59 +01:00
loop: "{{ bridges }}"
2024-01-15 01:00:59 +01:00
- name: add multiple mautrix bridge configuration
template:
2024-01-18 21:31:52 +01:00
src: "mautrix/{{item.bridge_name}}.config.yml.j2"
dest: "{{docker_compose_instance_directory}}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
- name: add element configuration
template:
src: "element.config.json.j2"
dest: "{{docker_compose_instance_directory}}element-config.json"
notify: docker compose project setup
- name: add synapse homeserver configuration
template:
2024-01-18 18:59:11 +01:00
src: "synapse/homeserver.yaml.j2"
dest: "{{docker_compose_instance_directory}}homeserver.yaml"
notify: docker compose project setup
- name: add synapse log configuration
template:
2024-01-18 18:59:11 +01:00
src: "synapse/log.config.j2"
dest: "{{docker_compose_instance_directory}}{{synapse_domain}}.log.config"
notify: docker compose project setup
# https://github.com/matrix-org/synapse/issues/6303
- name: set correct folder permissions
command:
cmd: "docker run --rm --mount type=volume,src=matrix_synapse_data,dst=/data -e SYNAPSE_SERVER_NAME={{synapse_domain}} -e SYNAPSE_REPORT_STATS=no --entrypoint /bin/sh matrixdotorg/synapse:latest -c 'chown -vR 991:991 /data'"
- name: add docker-compose.yml
template:
src: "docker-compose.yml.j2"
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: docker compose project setup
# Pull image when update is wished.
# @todo This should be moved to update-docker
- name: docker compose pull
command:
cmd: docker-compose -p "{{docker_compose_project_name}}" pull
chdir: "{{docker_compose_instance_directory}}"
when: mode_update | bool
2024-01-20 12:46:07 +01:00
- name: docker compose project setup
command:
cmd: docker-compose -p "{{docker_compose_project_name}}" up -d
2024-01-20 12:46:07 +01:00
chdir: "{{docker_compose_instance_directory}}"
environment:
COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600
register: result
until: result is succeeded
retries: 12
delay: 30
2024-01-18 19:44:27 +01:00
- name: wait for registration files
wait_for:
2024-01-18 21:31:52 +01:00
path: "{{docker_compose_instance_directory}}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-18 19:44:27 +01:00
- name: "change file permissions"
file:
2024-01-19 15:12:18 +01:00
path: "{{docker_compose_instance_directory}}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:
cmd: docker compose exec -it synapse register_new_matrix_user -u {{matrix_admin_name}} -p {{matrix_admin_password}} -a -c /data/homeserver.yaml http://localhost:8008
chdir: "{{ docker_compose_instance_directory }}"
ignore_errors: true
2024-01-20 22:29:53 +01:00
when: mode_setup | bool
- 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
chdir: "{{ docker_compose_instance_directory }}"
ignore_errors: true
2024-01-19 15:12:18 +01:00
when: mode_setup | bool