mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2025-01-15 12:43:12 +01:00
Update install.yml
This commit is contained in:
parent
e910d09ff1
commit
f16ca24408
@ -1,5 +1,5 @@
|
||||
---
|
||||
# Main installation tasks for matrix-element-call
|
||||
# roles/custom/matrix-element-call/tasks/install.yml
|
||||
|
||||
# Ensure Required Directories Exist
|
||||
- name: Ensure matrix-element-call paths exist
|
||||
@ -9,51 +9,65 @@
|
||||
mode: 0750
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
with_items:
|
||||
loop:
|
||||
- path: "{{ matrix_element_call_base_path }}"
|
||||
- path: "{{ matrix_element_call_config_path }}"
|
||||
- path: "{{ matrix_element_call_backend_path }}"
|
||||
- path: "{{ matrix_element_call_base_path }}/data"
|
||||
- path: "{{ matrix_element_call_base_path }}/config"
|
||||
- path: "{{ matrix_element_call_base_path }}/backend" # For LiveKit and Redis config
|
||||
|
||||
# Ensure Configuration Files are in Place
|
||||
- name: Ensure matrix-element-call support files installed
|
||||
- name: Ensure Element Call config.json is in place
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/{{ item }}.j2"
|
||||
dest: "{{ matrix_element_call_base_path }}/{{ item }}"
|
||||
src: "{{ role_path }}/templates/config.json.j2"
|
||||
dest: "{{ matrix_element_call_base_path }}/config/config.json"
|
||||
mode: 0640
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
with_items:
|
||||
- config.json
|
||||
- env
|
||||
- labels
|
||||
|
||||
- name: Ensure livekit.yaml is installed
|
||||
- name: Ensure LiveKit livekit.yaml is in place
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/livekit.yaml.j2"
|
||||
dest: "{{ matrix_element_call_backend_path }}/livekit.yaml"
|
||||
dest: "{{ matrix_element_call_base_path }}/backend/livekit.yaml"
|
||||
mode: 0640
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
- name: Ensure redis.conf is installed
|
||||
- name: Ensure Redis redis.conf is in place
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/redis.conf.j2"
|
||||
dest: "{{ matrix_element_call_backend_path }}/redis.conf"
|
||||
dest: "{{ matrix_element_call_base_path }}/backend/redis.conf"
|
||||
mode: 0640
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
- name: Ensure matrix-element-call environment file is in place
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/env.j2"
|
||||
dest: "{{ matrix_element_call_base_path }}/config/env"
|
||||
mode: 0640
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
- name: Ensure matrix-element-call Docker labels file is in place
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/labels.j2"
|
||||
dest: "{{ matrix_element_call_base_path }}/config/labels"
|
||||
mode: 0640
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
# Ensure Docker Images are Pulled
|
||||
- name: Ensure matrix-element-call container image is pulled
|
||||
- name: Ensure matrix-element-call Docker image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_element_call_image }}"
|
||||
name: "{{ matrix_element_call_container_image }}"
|
||||
source: pull
|
||||
force_source: "{{ matrix_element_call_container_image_force_pull }}"
|
||||
register: element_call_image_result
|
||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||
until: element_call_image_result is not failed
|
||||
|
||||
- name: Ensure jwt-service container image is pulled
|
||||
- name: Ensure jwt-service Docker image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_jwt_service_image }}"
|
||||
source: pull
|
||||
@ -62,7 +76,7 @@
|
||||
delay: 10
|
||||
until: jwt_image_result is not failed
|
||||
|
||||
- name: Ensure livekit container image is pulled
|
||||
- name: Ensure livekit Docker image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_livekit_image }}"
|
||||
source: pull
|
||||
@ -71,7 +85,7 @@
|
||||
delay: 10
|
||||
until: livekit_image_result is not failed
|
||||
|
||||
- name: Ensure redis container image is pulled
|
||||
- name: Ensure redis Docker image is pulled
|
||||
community.docker.docker_image:
|
||||
name: "{{ matrix_redis_image }}"
|
||||
source: pull
|
||||
@ -80,15 +94,8 @@
|
||||
delay: 10
|
||||
until: redis_image_result is not failed
|
||||
|
||||
# Ensure Docker Networks are Created
|
||||
- name: Ensure matrix-element-call container network is created
|
||||
community.general.docker_network:
|
||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
||||
name: "{{ matrix_element_call_container_network }}"
|
||||
driver: bridge
|
||||
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
||||
# Systemd Services for Element Call, JWT Service, LiveKit, and Redis
|
||||
|
||||
# Deploy Systemd Services for Containers
|
||||
- name: Ensure matrix-element-call systemd service is installed
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/systemd/matrix-element-call.service.j2"
|
||||
@ -112,3 +119,73 @@
|
||||
src: "{{ role_path }}/templates/systemd/matrix-redis.service.j2"
|
||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-redis.service"
|
||||
mode: 0644
|
||||
|
||||
# Update homeserver.yaml for Element Call
|
||||
- name: Add listeners section for Element Call to homeserver.yaml
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ matrix_homeserver_config_path }}"
|
||||
block: |
|
||||
listeners:
|
||||
- port: 8008
|
||||
tls: false
|
||||
type: http
|
||||
x_forwarded: true
|
||||
resources:
|
||||
- names: [client, federation, openid]
|
||||
compress: false
|
||||
marker: "# ANSIBLE MANAGED BLOCK - Element Call listeners"
|
||||
mode: '0644'
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
when: matrix_element_call_enabled | bool
|
||||
|
||||
- name: Ensure serve_server_wellknown is enabled in homeserver.yaml
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ matrix_homeserver_config_path }}"
|
||||
line: "serve_server_wellknown: true"
|
||||
insertafter: EOF
|
||||
state: present
|
||||
mode: '0644'
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
when: matrix_element_call_enabled | bool
|
||||
|
||||
# Update the .well-known/matrix/client file
|
||||
- name: Update the well-known client file
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/well_known_client.json.j2"
|
||||
dest: "{{ matrix_base_data_path }}/static-files/public/.well-known/matrix/client"
|
||||
mode: '0644'
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
# Create .well-known/element/element.json for Element Call
|
||||
- name: Create the well-known element.json file
|
||||
ansible.builtin.template:
|
||||
src: "{{ role_path }}/templates/well_known_element.json.j2"
|
||||
dest: "{{ matrix_base_data_path }}/static-files/public/.well-known/element/element.json"
|
||||
mode: '0644'
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
||||
# Update Element Web config.json with Element Call settings
|
||||
- name: Update Element Web config.json
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ element_web_config_path }}"
|
||||
block: |
|
||||
"features": {
|
||||
"feature_video_rooms": true,
|
||||
"feature_new_room_decoration_ui": true,
|
||||
"feature_group_calls": true,
|
||||
"feature_element_call_video_rooms": true
|
||||
},
|
||||
"element_call": {
|
||||
"url": "https://{{ matrix_element_call_domain }}",
|
||||
"participant_limit": 8,
|
||||
"brand": "Element Call",
|
||||
"use_exclusively": true
|
||||
}
|
||||
marker: "# ANSIBLE MANAGED BLOCK - Element Call settings"
|
||||
mode: '0644'
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user