mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-06-29 19:40:46 +03:00
4aca22dd96
Emit a /.well-known/matrix/mautrix file listing the base URLs of all enabled and exposed mautrix bridges under the `fi.mau.bridges` property, so tools like Mautrix Manager (https://github.com/mautrix/manager) can auto-discover them. The list is built in group_vars from each bridge's public address and is gated on the bridge being enabled, the playbook attaching its Traefik labels, and the exposure router being emitted, so we only advertise URLs that are actually reachable. The file follows the same auto/custom and configuration-extension pattern as the other well-known files and is only written when the list is non-empty. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
130 lines
5.5 KiB
YAML
130 lines
5.5 KiB
YAML
# SPDX-FileCopyrightText: 2024 David Mehren
|
|
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
---
|
|
|
|
- name: Ensure matrix-static-files paths exist
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
mode: '0750'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
with_items:
|
|
- {path: "{{ matrix_static_files_base_path }}", when: true}
|
|
- {path: "{{ matrix_static_files_config_path }}", when: true}
|
|
- {path: "{{ matrix_static_files_public_path }}", when: true}
|
|
- {path: "{{ matrix_static_files_public_well_known_path }}", when: true}
|
|
- {path: "{{ matrix_static_files_public_well_known_matrix_path }}", when: true}
|
|
when: "item.when | bool"
|
|
|
|
# This is not necessary anymore, so we're cleaning it up.
|
|
- name: Ensure matrix-static-files element path doesn't exist
|
|
ansible.builtin.file:
|
|
path: "{{ matrix_static_files_public_well_known_element_path }}"
|
|
state: absent
|
|
|
|
- name: Ensure matrix-static-files is configured
|
|
ansible.builtin.template:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
mode: '0644'
|
|
with_items:
|
|
- src: "{{ role_path }}/templates/config.toml.j2"
|
|
dest: "{{ matrix_static_files_config_path }}/config.toml"
|
|
|
|
- src: "{{ role_path }}/templates/env.j2"
|
|
dest: "{{ matrix_static_files_base_path }}/env"
|
|
|
|
- src: "{{ role_path }}/templates/labels.j2"
|
|
dest: "{{ matrix_static_files_base_path }}/labels"
|
|
register: matrix_static_files_config_result
|
|
|
|
- name: Ensure matrix-static-files files are installed
|
|
ansible.builtin.copy:
|
|
content: "{{ item.content }}"
|
|
dest: "{{ item.dest }}"
|
|
mode: '0644'
|
|
owner: "{{ matrix_user_name }}"
|
|
group: "{{ matrix_group_name }}"
|
|
when: item.when | bool
|
|
with_items:
|
|
- content: "{{ matrix_static_files_file_matrix_client_configuration | to_nice_json }}"
|
|
dest: "{{ matrix_static_files_public_well_known_matrix_path }}/client"
|
|
when: true
|
|
|
|
- content: "{{ matrix_static_files_file_matrix_server_configuration | to_nice_json }}"
|
|
dest: "{{ matrix_static_files_public_well_known_matrix_path }}/server"
|
|
when: "{{ matrix_static_files_file_matrix_server_enabled }}"
|
|
|
|
- content: "{{ matrix_static_files_file_matrix_support_configuration | to_nice_json }}"
|
|
dest: "{{ matrix_static_files_public_well_known_matrix_path }}/support"
|
|
when: "{{ matrix_static_files_file_matrix_support_enabled }}"
|
|
|
|
- content: "{{ matrix_static_files_file_matrix_mautrix_configuration | to_nice_json }}"
|
|
dest: "{{ matrix_static_files_public_well_known_matrix_path }}/mautrix"
|
|
when: "{{ matrix_static_files_file_matrix_mautrix_enabled }}"
|
|
|
|
# This one will not be deleted if `matrix_static_files_file_index_html_enabled` flips to `false`.
|
|
# See the comment for `matrix_static_files_file_index_html_enabled` to learn why.
|
|
- content: "{{ matrix_static_files_file_index_html_template }}"
|
|
dest: "{{ matrix_static_files_public_path }}/index.html"
|
|
when: "{{ matrix_static_files_file_index_html_enabled }}"
|
|
register: matrix_static_files_files_result
|
|
|
|
- name: Ensure /.well-known/matrix/server file deleted if not enabled
|
|
ansible.builtin.file:
|
|
path: "{{ matrix_static_files_public_well_known_matrix_path }}/server"
|
|
state: absent
|
|
when: "not matrix_static_files_file_matrix_server_enabled | bool"
|
|
|
|
- name: Ensure /.well-known/matrix/support file deleted if not enabled
|
|
ansible.builtin.file:
|
|
path: "{{ matrix_static_files_public_well_known_matrix_path }}/support"
|
|
state: absent
|
|
when: "not matrix_static_files_file_matrix_support_enabled | bool"
|
|
|
|
- name: Ensure /.well-known/matrix/mautrix file deleted if not enabled
|
|
ansible.builtin.file:
|
|
path: "{{ matrix_static_files_public_well_known_matrix_path }}/mautrix"
|
|
state: absent
|
|
when: "not matrix_static_files_file_matrix_mautrix_enabled | bool"
|
|
|
|
- name: Ensure matrix-static-files container image is pulled
|
|
community.docker.docker_image_pull:
|
|
name: "{{ matrix_static_files_container_image }}"
|
|
pull: always
|
|
register: matrix_static_files_container_image_pull_result
|
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
until: matrix_static_files_container_image_pull_result is not failed
|
|
|
|
- name: Ensure matrix-static-files container network is created
|
|
when: matrix_static_files_container_network != 'host'
|
|
community.general.docker_network:
|
|
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
name: "{{ matrix_static_files_container_network }}"
|
|
driver: bridge
|
|
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
|
|
- name: Ensure matrix-static-files systemd service is installed
|
|
ansible.builtin.template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-static-files.service.j2"
|
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_static_files_identifier }}.service"
|
|
mode: '0644'
|
|
register: matrix_static_files_systemd_service_result
|
|
|
|
- name: Determine whether matrix-static-files needs a restart
|
|
ansible.builtin.set_fact:
|
|
matrix_static_files_restart_necessary: >-
|
|
{{
|
|
matrix_static_files_config_result.changed | default(false)
|
|
or matrix_static_files_files_result.changed | default(false)
|
|
or matrix_static_files_systemd_service_result.changed | default(false)
|
|
or matrix_static_files_container_image_pull_result.changed | default(false)
|
|
}}
|