| @@ -4,7 +4,7 @@ | |||||
| version: v1.0.0-0 | version: v1.0.0-0 | ||||
| name: aux | name: aux | ||||
| - src: git+https://gitlab.com/etke.cc/roles/backup_borg.git | - src: git+https://gitlab.com/etke.cc/roles/backup_borg.git | ||||
| version: v1.2.4-1.7.12-1 | |||||
| version: v1.2.4-1.7.12-2 | |||||
| - src: git+https://github.com/devture/com.devture.ansible.role.container_socket_proxy.git | - src: git+https://github.com/devture/com.devture.ansible.role.container_socket_proxy.git | ||||
| version: v0.1.1-2 | version: v0.1.1-2 | ||||
| - src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git | - src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git | ||||
| @@ -35,7 +35,7 @@ | |||||
| version: 6.1.0 | version: 6.1.0 | ||||
| name: geerlingguy.docker | name: geerlingguy.docker | ||||
| - src: git+https://gitlab.com/etke.cc/roles/grafana.git | - src: git+https://gitlab.com/etke.cc/roles/grafana.git | ||||
| version: v9.5.1-0 | |||||
| version: v9.5.2-0 | |||||
| - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git | - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git | ||||
| version: v8615-0 | version: v8615-0 | ||||
| name: jitsi | name: jitsi | ||||
| @@ -4,7 +4,7 @@ | |||||
| matrix_bot_chatgpt_enabled: true | matrix_bot_chatgpt_enabled: true | ||||
| matrix_bot_chatgpt_version: 3.0.0 | |||||
| matrix_bot_chatgpt_version: 3.1.0 | |||||
| matrix_bot_chatgpt_container_image_self_build: false | matrix_bot_chatgpt_container_image_self_build: false | ||||
| matrix_bot_chatgpt_container_image_self_build_repo: "https://github.com/matrixgpt/matrix-chatgpt-bot" | matrix_bot_chatgpt_container_image_self_build_repo: "https://github.com/matrixgpt/matrix-chatgpt-bot" | ||||
| @@ -10,7 +10,7 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/vecto | |||||
| # - https://github.com/vector-im/element-web/issues/19544 | # - https://github.com/vector-im/element-web/issues/19544 | ||||
| matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}" | matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}" | ||||
| matrix_client_element_version: v1.11.30 | |||||
| matrix_client_element_version: v1.11.31 | |||||
| matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}" | matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}" | ||||
| matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}" | matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}" | ||||
| matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}" | matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}" | ||||
| @@ -4,8 +4,12 @@ | |||||
| matrix_dendrite_enabled: true | matrix_dendrite_enabled: true | ||||
| matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}matrixdotorg/dendrite-monolith:{{ matrix_dendrite_docker_image_tag }}" | |||||
| matrix_dendrite_docker_image_name_prefix: "docker.io/" | |||||
| matrix_dendrite_container_image_self_build: false | |||||
| matrix_dendrite_container_image_self_build_repo: "https://github.com/matrix-org/dendrite.git" | |||||
| matrix_dendrite_docker_image_path: "matrixdotorg/dendrite-monolith" | |||||
| matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}{{ matrix_dendrite_docker_image_path }}:{{ matrix_dendrite_docker_image_tag }}" | |||||
| matrix_dendrite_docker_image_name_prefix: "{{ 'localhost/' if matrix_dendrite_container_image_self_build else matrix_container_global_registry_prefix }}" | |||||
| matrix_dendrite_docker_image_tag: "v0.12.0" | matrix_dendrite_docker_image_tag: "v0.12.0" | ||||
| matrix_dendrite_docker_image_force_pull: "{{ matrix_dendrite_docker_image.endswith(':latest') }}" | matrix_dendrite_docker_image_force_pull: "{{ matrix_dendrite_docker_image.endswith(':latest') }}" | ||||
| @@ -17,6 +21,8 @@ matrix_dendrite_nats_storage_path: "{{ matrix_dendrite_base_path }}/nats" | |||||
| matrix_dendrite_bin_path: "{{ matrix_dendrite_base_path }}/bin" | matrix_dendrite_bin_path: "{{ matrix_dendrite_base_path }}/bin" | ||||
| matrix_dendrite_ext_path: "{{ matrix_dendrite_base_path }}/ext" | matrix_dendrite_ext_path: "{{ matrix_dendrite_base_path }}/ext" | ||||
| matrix_dendrite_docker_src_files_path: "{{ matrix_dendrite_base_path }}/docker-src" | |||||
| # By default, we make Dendrite only serve HTTP (not HTTPS). | # By default, we make Dendrite only serve HTTP (not HTTPS). | ||||
| # HTTPS is usually served at the reverse-proxy side (usually via `matrix-nginx-proxy`). | # HTTPS is usually served at the reverse-proxy side (usually via `matrix-nginx-proxy`). | ||||
| # | # | ||||
| @@ -85,14 +91,14 @@ matrix_dendrite_systemd_wanted_services_list: [] | |||||
| # matrix_dendrite_template_dendrite_config: "{{ playbook_dir }}/inventory/host_vars/<host>/dendrite.yaml.j2" | # matrix_dendrite_template_dendrite_config: "{{ playbook_dir }}/inventory/host_vars/<host>/dendrite.yaml.j2" | ||||
| matrix_dendrite_template_dendrite_config: "{{ role_path }}/templates/dendrite/dendrite.yaml.j2" | matrix_dendrite_template_dendrite_config: "{{ role_path }}/templates/dendrite/dendrite.yaml.j2" | ||||
| matrix_dendrite_client_api_registration_shared_secret: '' | |||||
| matrix_dendrite_client_api_registration_shared_secret: "" | |||||
| matrix_dendrite_allow_guest_access: false | matrix_dendrite_allow_guest_access: false | ||||
| matrix_dendrite_max_file_size_bytes: 10485760 | matrix_dendrite_max_file_size_bytes: 10485760 | ||||
| # Controls which HTTP header (e.g. 'X-Forwarded-For', 'X-Real-IP') to inspect to find the real remote IP address of the client. | # Controls which HTTP header (e.g. 'X-Forwarded-For', 'X-Real-IP') to inspect to find the real remote IP address of the client. | ||||
| # This is likely required if Dendrite is running behind a reverse proxy server. | # This is likely required if Dendrite is running behind a reverse proxy server. | ||||
| matrix_dendrite_sync_api_real_ip_header: 'X-Forwarded-For' | |||||
| matrix_dendrite_sync_api_real_ip_header: "X-Forwarded-For" | |||||
| # The tmpfs at /tmp needs to be large enough to handle multiple concurrent file uploads. | # The tmpfs at /tmp needs to be large enough to handle multiple concurrent file uploads. | ||||
| matrix_dendrite_tmp_directory_size_mb: 500 | matrix_dendrite_tmp_directory_size_mb: 500 | ||||
| @@ -147,7 +153,7 @@ matrix_dendrite_metrics_password: "metrics" | |||||
| # Postgres database information | # Postgres database information | ||||
| matrix_dendrite_database_str: "postgresql://{{ matrix_dendrite_database_user }}:{{ matrix_dendrite_database_password }}@{{ matrix_dendrite_database_hostname }}" | matrix_dendrite_database_str: "postgresql://{{ matrix_dendrite_database_user }}:{{ matrix_dendrite_database_password }}@{{ matrix_dendrite_database_hostname }}" | ||||
| matrix_dendrite_database_hostname: '' | |||||
| matrix_dendrite_database_hostname: "" | |||||
| matrix_dendrite_database_user: "dendrite" | matrix_dendrite_database_user: "dendrite" | ||||
| matrix_dendrite_database_password: "itsasecret" | matrix_dendrite_database_password: "itsasecret" | ||||
| matrix_dendrite_federation_api_database: "dendrite_federationapi" | matrix_dendrite_federation_api_database: "dendrite_federationapi" | ||||
| @@ -1,17 +1,23 @@ | |||||
| --- | --- | ||||
| - name: Ensure Dendrite paths exist | - name: Ensure Dendrite paths exist | ||||
| ansible.builtin.file: | ansible.builtin.file: | ||||
| path: "{{ item }}" | |||||
| path: "{{ item.path }}" | |||||
| state: directory | state: directory | ||||
| mode: 0750 | mode: 0750 | ||||
| owner: "{{ matrix_user_username }}" | owner: "{{ matrix_user_username }}" | ||||
| group: "{{ matrix_user_groupname }}" | group: "{{ matrix_user_groupname }}" | ||||
| with_items: | with_items: | ||||
| - "{{ matrix_dendrite_config_dir_path }}" | |||||
| - "{{ matrix_dendrite_bin_path }}" | |||||
| - "{{ matrix_dendrite_ext_path }}" | |||||
| - "{{ matrix_dendrite_nats_storage_path }}" | |||||
| - path: "{{ matrix_dendrite_config_dir_path }}" | |||||
| when: true | |||||
| - path: "{{ matrix_dendrite_bin_path }}" | |||||
| when: true | |||||
| - path: "{{ matrix_dendrite_ext_path }}" | |||||
| when: true | |||||
| - path: "{{ matrix_dendrite_nats_storage_path }}" | |||||
| when: true | |||||
| - path: "{{ matrix_dendrite_docker_src_files_path }}" | |||||
| when: "{{ matrix_dendrite_container_image_self_build }}" | |||||
| when: "item.when | bool" | |||||
| # This will throw a Permission Denied error if already mounted using fuse | # This will throw a Permission Denied error if already mounted using fuse | ||||
| - name: Check Dendrite media store path | - name: Check Dendrite media store path | ||||
| @@ -37,6 +43,7 @@ | |||||
| source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | ||||
| force_source: "{{ matrix_dendrite_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | force_source: "{{ matrix_dendrite_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | ||||
| force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_dendrite_docker_image_force_pull }}" | force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_dendrite_docker_image_force_pull }}" | ||||
| when: "not matrix_dendrite_container_image_self_build | bool" | |||||
| register: result | register: result | ||||
| retries: "{{ devture_playbook_help_container_retries_count }}" | retries: "{{ devture_playbook_help_container_retries_count }}" | ||||
| delay: "{{ devture_playbook_help_container_retries_delay }}" | delay: "{{ devture_playbook_help_container_retries_delay }}" | ||||
| @@ -72,6 +79,34 @@ | |||||
| owner: "{{ matrix_user_username }}" | owner: "{{ matrix_user_username }}" | ||||
| group: "{{ matrix_user_groupname }}" | group: "{{ matrix_user_groupname }}" | ||||
| - when: "matrix_dendrite_container_image_self_build | bool" | |||||
| block: | |||||
| - name: Ensure Dendrite repository is present on self-build | |||||
| ansible.builtin.git: | |||||
| repo: "{{ matrix_dendrite_container_image_self_build_repo }}" | |||||
| dest: "{{ matrix_dendrite_docker_src_files_path }}" | |||||
| version: "{{ matrix_dendrite_docker_image.split(':')[1] }}" | |||||
| force: "yes" | |||||
| become: true | |||||
| become_user: "{{ matrix_user_username }}" | |||||
| register: matrix_dendrite_git_pull_results | |||||
| - name: Check if Dendrite Docker image exists | |||||
| ansible.builtin.command: "{{ devture_systemd_docker_base_host_command_docker }} images --quiet --filter 'reference={{ matrix_dendrite_docker_image }}'" | |||||
| register: matrix_dendrite_docker_image_check_result | |||||
| changed_when: false | |||||
| # Invoking the `docker build` command here, instead of calling the `docker_image` Ansible module, | |||||
| # because the latter does not support BuildKit. | |||||
| # See: https://github.com/ansible-collections/community.general/issues/514 | |||||
| - name: Ensure Dendrite Docker image is built | |||||
| ansible.builtin.command: | |||||
| cmd: "{{ devture_systemd_docker_base_host_command_docker }} build -t {{ matrix_dendrite_docker_image }} {{ matrix_dendrite_docker_src_files_path }}" | |||||
| environment: | |||||
| DOCKER_BUILDKIT: 1 | |||||
| changed_when: true | |||||
| when: "matrix_dendrite_git_pull_results.changed | bool or matrix_dendrite_docker_image_check_result.stdout == ''" | |||||
| - name: Ensure Dendrite container network is created | - name: Ensure Dendrite container network is created | ||||
| community.general.docker_network: | community.general.docker_network: | ||||
| name: "{{ matrix_dendrite_container_network }}" | name: "{{ matrix_dendrite_container_network }}" | ||||
| @@ -1,7 +1,10 @@ | |||||
| #jinja2: lstrip_blocks: "True" | #jinja2: lstrip_blocks: "True" | ||||
| {% macro render_vhost_directives() %} | {% macro render_vhost_directives() %} | ||||
| absolute_redirect off; | |||||
| root {{ matrix_nginx_proxy_data_path_in_container if matrix_nginx_proxy_enabled else matrix_nginx_proxy_data_path }}{{ matrix_nginx_proxy_data_path_extension }}; | root {{ matrix_nginx_proxy_data_path_in_container if matrix_nginx_proxy_enabled else matrix_nginx_proxy_data_path }}{{ matrix_nginx_proxy_data_path_extension }}; | ||||
| index index.html index.htm; | |||||
| try_files $uri $uri/ =404; | |||||
| gzip on; | gzip on; | ||||
| gzip_types text/plain application/json; | gzip_types text/plain application/json; | ||||
| @@ -4,7 +4,7 @@ | |||||
| matrix_synapse_enabled: true | matrix_synapse_enabled: true | ||||
| matrix_synapse_version: v1.82.0 | |||||
| matrix_synapse_version: v1.83.0 | |||||
| matrix_synapse_username: '' | matrix_synapse_username: '' | ||||
| matrix_synapse_uid: '' | matrix_synapse_uid: '' | ||||