mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2025-02-07 07:45:05 +01:00
Add livekit_server_identifier
This commit is contained in:
parent
fa4ebd2a64
commit
783d4a23f8
@ -34,7 +34,7 @@ Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.
|
|||||||
matrix_element_call_enabled: true
|
matrix_element_call_enabled: true
|
||||||
|
|
||||||
# Set a secure key for LiveKit authentication
|
# Set a secure key for LiveKit authentication
|
||||||
livekit_server_dev_key: 'your-secure-livekit-key'
|
livekit_server_config_keys_devkey: 'your-secure-livekit-key'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
@ -442,7 +442,7 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
+
|
+
|
||||||
([{'name': 'matrix-jwt-service.service', 'priority': 3000, 'groups': ['matrix', 'jwt-service']}] if matrix_jwt_service_enabled else [])
|
([{'name': 'matrix-jwt-service.service', 'priority': 3000, 'groups': ['matrix', 'jwt-service']}] if matrix_jwt_service_enabled else [])
|
||||||
+
|
+
|
||||||
([{'name': 'matrix-livekit-server.service', 'priority': 3000, 'groups': ['matrix', 'livekit-server']}] if livekit_server_enabled else [])
|
([{'name': (livekit_server_identifier + '.service'), 'priority': 3000, 'groups': ['matrix', 'livekit-server']}] if livekit_server_enabled else [])
|
||||||
+
|
+
|
||||||
([{'name': 'matrix-registration.service', 'priority': 4000, 'groups': ['matrix', 'registration', 'matrix-registration']}] if matrix_registration_enabled else [])
|
([{'name': 'matrix-registration.service', 'priority': 4000, 'groups': ['matrix', 'registration', 'matrix-registration']}] if matrix_registration_enabled else [])
|
||||||
+
|
+
|
||||||
@ -6064,6 +6064,10 @@ matrix_element_call_container_labels_traefik_tls_certResolver: "{{ traefik_certR
|
|||||||
|
|
||||||
livekit_server_enabled: "{{ matrix_element_call_enabled }}"
|
livekit_server_enabled: "{{ matrix_element_call_enabled }}"
|
||||||
|
|
||||||
|
livekit_server_identifier: matrix-livekit-server
|
||||||
|
|
||||||
|
livekit_server_base_path: "{{ matrix_base_data_path }}/livekit-server"
|
||||||
|
|
||||||
livekit_server_hostname: "sfu.{{ matrix_domain }}"
|
livekit_server_hostname: "sfu.{{ matrix_domain }}"
|
||||||
|
|
||||||
livekit_server_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
|
livekit_server_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
|
||||||
@ -6071,13 +6075,11 @@ livekit_server_container_image_self_build: "{{ matrix_architecture not in ['arm6
|
|||||||
livekit_server_container_network: "{{ matrix_addons_container_network }}"
|
livekit_server_container_network: "{{ matrix_addons_container_network }}"
|
||||||
livekit_server_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (livekit_server_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
|
livekit_server_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (livekit_server_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
|
||||||
|
|
||||||
# Traefik Configuration for Livekit
|
livekit_server_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
|
||||||
matrix_livekit_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
|
livekit_server_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
matrix_livekit_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
|
||||||
livekit_server_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
livekit_server_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
||||||
livekit_server_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
livekit_server_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# /livekit-server #
|
# /livekit-server #
|
||||||
|
@ -4,18 +4,17 @@
|
|||||||
|
|
||||||
livekit_server_enabled: false
|
livekit_server_enabled: false
|
||||||
|
|
||||||
# Base path configuration
|
livekit_server_identifier: livekit-server
|
||||||
livekit_server_base_path: "{{ matrix_base_data_path }}/livekit-server"
|
|
||||||
|
livekit_server_base_path: "/{{ livekit_server_identifier }}"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=livekit/livekit-server
|
# renovate: datasource=docker depName=livekit/livekit-server
|
||||||
livekit_server_version: v1.8.0
|
livekit_server_version: v1.8.0
|
||||||
|
|
||||||
livekit_server_hostname: ""
|
livekit_server_hostname: ""
|
||||||
livekit_server_path_prefix: "/"
|
livekit_server_path_prefix: /
|
||||||
|
|
||||||
# Docker network configuration
|
livekit_server_container_network: "{{ livekit_server_identifier }}"
|
||||||
livekit_server_container_network: ''
|
|
||||||
livekit_server_container_http_host_bind_port: ''
|
|
||||||
|
|
||||||
livekit_server_container_additional_networks: "{{ livekit_server_container_additional_networks_auto + livekit_server_container_additional_networks_custom }}"
|
livekit_server_container_additional_networks: "{{ livekit_server_container_additional_networks_auto + livekit_server_container_additional_networks_custom }}"
|
||||||
livekit_server_container_additional_networks_auto: []
|
livekit_server_container_additional_networks_auto: []
|
||||||
@ -30,12 +29,6 @@ livekit_server_container_image: "{{ livekit_server_container_image_name_prefix }
|
|||||||
livekit_server_container_image_name_prefix: "{{ 'localhost/' if livekit_server_container_image_self_build else 'docker.io/' }}"
|
livekit_server_container_image_name_prefix: "{{ 'localhost/' if livekit_server_container_image_self_build else 'docker.io/' }}"
|
||||||
livekit_server_container_image_force_pull: "{{ livekit_server_container_image.endswith(':latest') }}"
|
livekit_server_container_image_force_pull: "{{ livekit_server_container_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# LiveKit configuration
|
|
||||||
livekit_server_livekit_server_dev_key: "{{ livekit_server_dev_key }}" # Must be defined in host_vars
|
|
||||||
livekit_server_jwt_secret: "{{ matrix_element_call_jwt_secret }}" # Must be defined in host_vars
|
|
||||||
livekit_server_hostname: "sfu.{{ matrix_domain }}"
|
|
||||||
|
|
||||||
# Traefik Configuration for Element Call
|
|
||||||
livekit_server_container_labels_traefik_enabled: true
|
livekit_server_container_labels_traefik_enabled: true
|
||||||
livekit_server_container_labels_traefik_docker_network: "{{ livekit_server_container_network }}"
|
livekit_server_container_labels_traefik_docker_network: "{{ livekit_server_container_network }}"
|
||||||
livekit_server_container_labels_traefik_hostname: "{{ livekit_server_hostname }}"
|
livekit_server_container_labels_traefik_hostname: "{{ livekit_server_hostname }}"
|
||||||
@ -130,3 +123,5 @@ livekit_server_floc_optout_enabled: false
|
|||||||
# - https://hstspreload.org/#opt-in
|
# - https://hstspreload.org/#opt-in
|
||||||
# See: `livekit_server_http_header_strict_transport_security`
|
# See: `livekit_server_http_header_strict_transport_security`
|
||||||
livekit_server_hsts_preload_enabled: true
|
livekit_server_hsts_preload_enabled: true
|
||||||
|
|
||||||
|
livekit_server_config_keys_devkey: ""
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
---
|
---
|
||||||
# roles/custom/matrix-livekit-server/tasks/install.yml
|
|
||||||
|
|
||||||
# Ensure Required Directories Exist
|
- name: Ensure LiveKit Server paths exist
|
||||||
- name: Ensure matrix-livekit-server paths exist
|
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
@ -12,8 +10,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- path: "{{ livekit_server_base_path }}"
|
- path: "{{ livekit_server_base_path }}"
|
||||||
|
|
||||||
# Ensure Configuration Files are in Place
|
- name: Ensure LiveKit Server livekit.yaml is in place
|
||||||
- name: Ensure LiveKit livekit.yaml is in place
|
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/livekit.yaml.j2"
|
src: "{{ role_path }}/templates/livekit.yaml.j2"
|
||||||
dest: "{{ livekit_server_base_path }}/livekit.yaml"
|
dest: "{{ livekit_server_base_path }}/livekit.yaml"
|
||||||
@ -21,7 +18,7 @@
|
|||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure LiveKit labels file is in place
|
- name: Ensure LiveKit Server labels file is in place
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/labels.j2"
|
src: "{{ role_path }}/templates/labels.j2"
|
||||||
dest: "{{ livekit_server_base_path }}/labels"
|
dest: "{{ livekit_server_base_path }}/labels"
|
||||||
@ -29,8 +26,7 @@
|
|||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
# Ensure Docker Images are Pulled
|
- name: Ensure LiveKit Server container image is pulled
|
||||||
- name: Ensure LiveKit Docker image is pulled
|
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ livekit_server_container_image }}"
|
name: "{{ livekit_server_container_image }}"
|
||||||
source: pull
|
source: pull
|
||||||
@ -39,9 +35,8 @@
|
|||||||
delay: 10
|
delay: 10
|
||||||
until: livekit_image_result is not failed
|
until: livekit_image_result is not failed
|
||||||
|
|
||||||
# Systemd Services for LiveKit
|
- name: Ensure LiveKit Server systemd service is installed
|
||||||
- name: Ensure LiveKit systemd service is installed
|
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-livekit-server.service.j2"
|
src: "{{ role_path }}/templates/systemd/livekit-server.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-livekit-server.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ livekit_server_identifier }}.service"
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
---
|
---
|
||||||
# Main task file for matrix-livekit-server
|
|
||||||
|
|
||||||
- tags:
|
- tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
|
@ -1,21 +1,25 @@
|
|||||||
---
|
---
|
||||||
# Uninstall tasks for matrix-livekit-server
|
|
||||||
|
|
||||||
- name: Stop and remove LiveKit container
|
- name: Check existence of LiveKit Server service
|
||||||
community.docker.docker_container:
|
ansible.builtin.stat:
|
||||||
name: "matrix-livekit-server"
|
path: "{{ devture_systemd_docker_base_systemd_path }}/{{ livekit_server_identifier }}.service"
|
||||||
state: absent
|
register: livekit_server_service_stat
|
||||||
|
|
||||||
- name: Remove LiveKit systemd service
|
- when: livekit_server_service_stat.stat.exists | bool
|
||||||
ansible.builtin.file:
|
block:
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-livekit-server.service"
|
- name: Ensure LiveKit Server is stopped
|
||||||
state: absent
|
ansible.builtin.service:
|
||||||
|
name: "{{ livekit_server_identifier }}"
|
||||||
|
state: stopped
|
||||||
|
enabled: false
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
- name: Remove matrix-livekit-server configuration files
|
- name: Ensure LiveKit Server systemd service doesn't exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_livekit_serverbase_path }}"
|
path: "{{ devture_systemd_docker_base_systemd_path }}/{{ livekit_server_identifier }}.service"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Reload systemd daemon
|
- name: Ensure LiveKit Server paths don't exist
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.file:
|
||||||
daemon_reload: true
|
path: "{{ livekit_server_base_path }}"
|
||||||
|
state: absent
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
---
|
---
|
||||||
# Validate configuration for matrix-livekit-server
|
|
||||||
|
|
||||||
- name: Fail if required matrix-livekit-server settings are not defined
|
- name: Fail if required LiveKit Server settings are not defined
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: >
|
msg: >
|
||||||
You need to define a required configuration setting (`{{ item.name }}`).
|
You need to define a required configuration setting (`{{ item.name }}`).
|
||||||
when: "item.when | bool and vars[item.name] == ''"
|
when: "item.when | bool and vars[item.name] | length == 0"
|
||||||
with_items:
|
with_items:
|
||||||
- {'name': 'livekit_server_hostname', when: true}
|
- {'name': 'livekit_server_hostname', when: true}
|
||||||
- {'name': 'livekit_server_base_path', when: true}
|
- {'name': 'livekit_server_base_path', when: true}
|
||||||
- {'name': 'livekit_server_container_network', when: true}
|
- {'name': 'livekit_server_container_network', when: true}
|
||||||
- {'name': 'livekit_server_container_image', when: true}
|
- {'name': 'livekit_server_container_image', when: true}
|
||||||
- {'name': 'livekit_server_container_image', when: true}
|
- {'name': 'livekit_server_config_keys_devkey', when: true}
|
||||||
|
@ -17,4 +17,4 @@ turn:
|
|||||||
external_tls: true
|
external_tls: true
|
||||||
|
|
||||||
keys:
|
keys:
|
||||||
devkey: "{{ livekit_server_livekit_dev_key }}"
|
devkey: {{ livekit_server_config_keys_devkey | to_json }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user