|
|
|
---
|
|
|
|
# Project source code URL: https://github.com/coturn/coturn
|
|
|
|
|
|
|
|
matrix_coturn_enabled: true
|
|
|
|
|
|
|
|
matrix_coturn_container_image_self_build: false
|
|
|
|
matrix_coturn_container_image_self_build_repo: "https://github.com/coturn/coturn"
|
|
|
|
matrix_coturn_container_image_self_build_repo_version: "docker/{{ matrix_coturn_version }}"
|
|
|
|
matrix_coturn_container_image_self_build_repo_dockerfile_path: "docker/coturn/alpine/Dockerfile"
|
|
|
|
|
|
|
|
matrix_coturn_version: 4.6.1-r2
|
|
|
|
matrix_coturn_docker_image: "{{ matrix_coturn_docker_image_name_prefix }}coturn/coturn:{{ matrix_coturn_version }}-alpine"
|
|
|
|
matrix_coturn_docker_image_name_prefix: "{{ 'localhost/' if matrix_coturn_container_image_self_build else matrix_container_global_registry_prefix }}"
|
|
|
|
matrix_coturn_docker_image_force_pull: "{{ matrix_coturn_docker_image.endswith(':latest') }}"
|
|
|
|
|
|
|
|
# The Docker network that Coturn would be put into.
|
|
|
|
#
|
|
|
|
# Because Coturn relays traffic to unvalidated IP addresses,
|
|
|
|
# using a dedicated network, isolated from other Docker (and local) services is preferrable.
|
|
|
|
#
|
|
|
|
# Setting up deny/allow rules with `matrix_coturn_allowed_peer_ips`/`matrix_coturn_denied_peer_ips` is also
|
|
|
|
# possible for achieving such isolation, but is more complicated due to the dynamic nature of Docker networking.
|
|
|
|
#
|
|
|
|
# Setting `matrix_coturn_docker_network` to 'host' will run the container with host networking,
|
|
|
|
# which will drastically improve performance when thousands of ports are opened due to Docker not having to set up forwarding rules for each port.
|
|
|
|
# Running with host networking can be dangerous, as it potentially exposes your local network and its services to Coturn peers.
|
|
|
|
# Regardless of the networking mode, we apply a deny list which via `matrix_coturn_denied_peer_ips`,
|
|
|
|
# which hopefully prevents access to such private network ranges.
|
|
|
|
# When running in host-networking mode, you need to adjust the firewall yourself, so that ports are opened.
|
|
|
|
matrix_coturn_docker_network: "matrix-coturn"
|
|
|
|
|
|
|
|
matrix_coturn_base_path: "{{ matrix_base_data_path }}/coturn"
|
|
|
|
matrix_coturn_docker_src_files_path: "{{ matrix_coturn_base_path }}/docker-src"
|
|
|
|
matrix_coturn_config_path: "{{ matrix_coturn_base_path }}/turnserver.conf"
|
|
|
|
|
|
|
|
# List of systemd services that matrix-coturn.service depends on
|
|
|
|
matrix_coturn_systemd_required_services_list: ['docker.service']
|
|
|
|
|
|
|
|
# A list of additional "volumes" to mount in the container.
|
|
|
|
# This list gets populated dynamically at runtime. You can provide a different default value,
|
|
|
|
# if you wish to mount your own files into the container.
|
|
|
|
# Contains definition objects like this: `{"type": "bind", "src": "/outside", "dst": "/inside", "options": "readonly"}.
|
|
|
|
# See the `--mount` documentation for the `docker run` command.
|
|
|
|
matrix_coturn_container_additional_volumes: []
|
|
|
|
|
|
|
|
# A list of extra arguments to pass to the container
|
|
|
|
matrix_coturn_container_extra_arguments: []
|
|
|
|
|
|
|
|
# Controls whether the Coturn container exposes its plain STUN port (tcp/3478 and udp/3478 in the container).
|
|
|
|
#
|
|
|
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:3478"), or empty string to not expose.
|
|
|
|
matrix_coturn_container_stun_plain_host_bind_port: "{{ '3478' if matrix_coturn_docker_network != 'host' else '' }}"
|
|
|
|
|
|
|
|
# Controls whether the Coturn container exposes its TLS STUN port (tcp/5349 and udp/5349 in the container).
|
|
|
|
#
|
|
|
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:5349"), or empty string to not expose.
|
|
|
|
matrix_coturn_container_stun_tls_host_bind_port: "{{ '5349' if matrix_coturn_docker_network != 'host' else '' }}"
|
|
|
|
|
|
|
|
# Controls whether the Coturn container exposes its TURN UDP port range and which interface to do it on.
|
|
|
|
#
|
|
|
|
# Takes an interface "<ip address>" (e.g. "127.0.0.1"), or empty string to listen on all interfaces.
|
|
|
|
# Takes a null/none value (`~`) or 'none' (as a string) to prevent listening.
|
|
|
|
#
|
|
|
|
# The UDP port-range itself is specified using `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`.
|
|
|
|
matrix_coturn_container_turn_range_listen_interface: "{{ '' if matrix_coturn_docker_network != 'host' else 'none' }}"
|
|
|
|
|
|
|
|
# UDP port-range to use for TURN
|
|
|
|
matrix_coturn_turn_udp_min_port: 49152
|
|
|
|
matrix_coturn_turn_udp_max_port: 49172
|
|
|
|
|
|
|
|
# A shared secret (between Synapse and Coturn) used for authentication.
|
|
|
|
# You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`).
|
|
|
|
matrix_coturn_turn_static_auth_secret: ""
|
|
|
|
|
|
|
|
# The external IP address of the machine where Coturn is.
|
|
|
|
matrix_coturn_turn_external_ip_address: ''
|
|
|
|
matrix_coturn_turn_external_ip_addresses: ["{{ matrix_coturn_turn_external_ip_address }}"]
|
|
|
|
|
|
|
|
matrix_coturn_allowed_peer_ips: []
|
|
|
|
|
|
|
|
# We block loopback interfaces and private networks by default to prevent private resources from being accessible.
|
|
|
|
# This is especially important when Coturn does not run within a container network (e.g. `matrix_coturn_docker_network: host`).
|
|
|
|
#
|
|
|
|
# Learn more: https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/
|
|
|
|
#
|
|
|
|
# If you're running Coturn for local network peers, you may wish to override these rules.
|
|
|
|
matrix_coturn_denied_peer_ips:
|
|
|
|
- 0.0.0.0-0.255.255.255
|
|
|
|
- 10.0.0.0-10.255.255.255
|
|
|
|
- 100.64.0.0-100.127.255.255
|
|
|
|
- 127.0.0.0-127.255.255.255
|
|
|
|
- 169.254.0.0-169.254.255.255
|
|
|
|
- 172.16.0.0-172.31.255.255
|
|
|
|
- 192.0.0.0-192.0.0.255
|
|
|
|
- 192.0.2.0-192.0.2.255
|
|
|
|
- 192.88.99.0-192.88.99.255
|
|
|
|
- 192.168.0.0-192.168.255.255
|
|
|
|
- 198.18.0.0-198.19.255.255
|
|
|
|
- 198.51.100.0-198.51.100.255
|
|
|
|
- 203.0.113.0-203.0.113.255
|
|
|
|
- 240.0.0.0-255.255.255.255
|
|
|
|
- ::1
|
|
|
|
- 64:ff9b::-64:ff9b::ffff:ffff
|
|
|
|
- ::ffff:0.0.0.0-::ffff:255.255.255.255
|
|
|
|
- 100::-100::ffff:ffff:ffff:ffff
|
|
|
|
- 2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
|
|
|
|
- 2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
|
|
|
- fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
|
|
|
- fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
|
|
|
|
|
|
|
|
matrix_coturn_user_quota: null
|
|
|
|
matrix_coturn_total_quota: null
|
|
|
|
|
|
|
|
# Controls whether `no-tcp-relay` is added to the configuration
|
|
|
|
# Learn more here: https://github.com/coturn/coturn/blob/242eb78227f66442ba1573c00ec4552faae23eed/examples/etc/turnserver.conf#L419-L422
|
|
|
|
matrix_coturn_no_tcp_relay_enabled: true
|
|
|
|
|
|
|
|
# Controls whether `no-multicast-peers` is added to the configuration
|
|
|
|
# Learn more here: https://github.com/coturn/coturn/blob/242eb78227f66442ba1573c00ec4552faae23eed/examples/etc/turnserver.conf#L629-L632
|
|
|
|
matrix_coturn_no_multicast_peers_enabled: true
|
|
|
|
|
|
|
|
# Controls whether `no-rfc5780` is added to the configuration
|
|
|
|
# Learn more here: https://github.com/coturn/coturn/blob/242eb78227f66442ba1573c00ec4552faae23eed/examples/etc/turnserver.conf#L770-L781
|
|
|
|
matrix_coturn_no_rfc5780_enabled: true
|
|
|
|
|
|
|
|
# Controls whether `no-stun-backward-compatibility` is added to the configuration
|
|
|
|
# Learn more here: https://github.com/coturn/coturn/blob/242eb78227f66442ba1573c00ec4552faae23eed/examples/etc/turnserver.conf#L783-L789
|
|
|
|
matrix_coturn_no_stun_backward_compatibility_enabled: true
|
|
|
|
|
|
|
|
# Controls whether `response-origin-only-with-rfc5780` is added to the configuration
|
|
|
|
# Learn more here: https://github.com/coturn/coturn/blob/242eb78227f66442ba1573c00ec4552faae23eed/examples/etc/turnserver.conf#L791-L796
|
|
|
|
matrix_coturn_response_origin_only_with_rfc5780_enabled: true
|
|
|
|
|
|
|
|
# Additional configuration to be passed to turnserver.conf
|
|
|
|
# Example:
|
|
|
|
# matrix_coturn_additional_configuration: |
|
|
|
|
# simple-log
|
|
|
|
# aux-server=1.2.3.4
|
|
|
|
# relay-ip=4.3.2.1
|
|
|
|
matrix_coturn_additional_configuration: ''
|
|
|
|
|
|
|
|
# To enable TLS, you need to provide paths to certificates.
|
|
|
|
# Paths defined in `matrix_coturn_tls_cert_path` and `matrix_coturn_tls_key_path` are in-container paths.
|
|
|
|
# Files on the host can be mounted into the container using `matrix_coturn_container_additional_volumes`.
|
|
|
|
matrix_coturn_tls_enabled: false
|
|
|
|
matrix_coturn_tls_cert_path: ~
|
|
|
|
matrix_coturn_tls_key_path: ~
|
|
|
|
|
|
|
|
matrix_coturn_tls_v1_enabled: false
|
|
|
|
matrix_coturn_tls_v1_1_enabled: false
|