You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+19-11Lines changed: 19 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,13 @@
1
1
# 2026-02-11
2
2
3
+
## (BC Break) coturn role has been relocated and variable names need adjustments
4
+
5
+
The role for coturn has been relocated to the [mother-of-all-self-hosting](https://github.com/mother-of-all-self-hosting) organization.
6
+
7
+
Along with the relocation, the `matrix_coturn_` prefix on its variable names has been renamed to `coturn_`, so you need to adjust your `vars.yml` configuration.
8
+
9
+
As always, the playbook would let you know about this and point out any variables you may have missed.
10
+
3
11
## conduwuit has been removed from the playbook
4
12
5
13
[conduwuit](./docs/configuring-playbook-conduwuit.md) has been removed from the playbook, as it has been abandoned.
@@ -324,7 +332,7 @@ In light of this new information, you have 2 options:
324
332
- Consider closing the STUN/UDP port with the following configuration:
- Consider keeping `3478/udp` blocked in your external firewall (if you have one)
@@ -385,11 +393,11 @@ The playbook now **only exposes the Coturn STUN port (`3478`) over TCP by defaul
385
393
If you'd like the Coturn STUN port to be exposed over UDP like before, you can revert to the previous behavior by using the following configuration in your `vars.yml` file:
> People running Coturn directly on the `host` network (using `matrix_coturn_container_network: host`) will still have the STUN port exposed over UDP, as port exposure is done directly via Coturn and not via Docker. In such cases, the playbook cannot prevent `3478/udp` port exposure and you'd need to do it in another way (separate firewall rule, etc).
400
+
> People running Coturn directly on the `host` network (using `coturn_container_network: host`) will still have the STUN port exposed over UDP, as port exposure is done directly via Coturn and not via Docker. In such cases, the playbook cannot prevent `3478/udp` port exposure and you'd need to do it in another way (separate firewall rule, etc).
393
401
394
402
395
403
# 2025-02-17
@@ -1732,12 +1740,12 @@ Other roles which aren't strictly related to Matrix are likely to follow this fa
1732
1740
1733
1741
## coturn can now use host-networking
1734
1742
1735
-
Large coturn deployments (with a huge range of ports specified via `matrix_coturn_turn_udp_min_port` and `matrix_coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown.
1743
+
Large coturn deployments (with a huge range of ports specified via `coturn_turn_udp_min_port` and `coturn_turn_udp_max_port`) experience a huge slowdown with how Docker publishes all these ports (setting up firewall forwarding rules), which leads to a very slow coturn service startup and shutdown.
1736
1744
1737
1745
Such deployments don't need to run coturn within a private container network anymore. coturn can now run with host-networking by using configuration like this:
1738
1746
1739
1747
```yaml
1740
-
matrix_coturn_container_network: host
1748
+
coturn_container_network: host
1741
1749
```
1742
1750
1743
1751
With such a configuration, **Docker no longer needs to configure thousands of firewall forwarding rules** each time coturn starts and stops. This, however, means that **you will need to ensure these ports are open** in your firewall yourself.
@@ -1746,11 +1754,11 @@ Thanks to us [tightening coturn security](#backward-compatibility-tightening-cot
1746
1754
1747
1755
## (Backward Compatibility) Tightening coturn security can lead to connectivity issues
1748
1756
1749
-
**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `matrix_coturn_denied_peer_ips` and remove some IP ranges from it.
1757
+
**TLDR**: users who run and access their Matrix server on a private network (likely a small minority of users) may experience connectivity issues with our new default coturn blocklists. They may need to override `coturn_denied_peer_ips` and remove some IP ranges from it.
1750
1758
1751
1759
Inspired by [this security article](https://www.rtcsec.com/article/cve-2020-26262-bypass-of-coturns-access-control-protection/), we've decided to make use of coturn's `denied-peer-ip` functionality to prevent relaying network traffic to certain private IP subnets. This ensures that your coturn server won't accidentally try to forward traffic to certain services running on your local networks. We run coturn in a container and in a private container network by default, which should prevent such access anyway, but having additional block layers in place is better.
1752
1760
1753
-
If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `matrix_coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it.
1761
+
If you access your Matrix server from a local network and need coturn to relay to private IP addresses, you may observe that relaying is now blocked due to our new default `denied-peer-ip` lists (specified in `coturn_denied_peer_ips`). If you experience such connectivity problems, consider overriding this setting in your `vars.yml` file and removing certain networks from it.
1754
1762
1755
1763
We've also added `no-multicast-peers` to the default coturn configuration, but we don't expect this to cause trouble for most people.
1756
1764
@@ -2536,8 +2544,8 @@ To improve security, we've [removed TLSv1 and TLSv1.1 support](https://github.co
2536
2544
If you need to support old clients, you can re-enable both (or whichever one you need) with the following configuration:
2537
2545
2538
2546
```yaml
2539
-
matrix_coturn_tls_v1_enabled: true
2540
-
matrix_coturn_tls_v1_1_enabled: true
2547
+
coturn_tls_v1_enabled: true
2548
+
coturn_tls_v1_1_enabled: true
2541
2549
```
2542
2550
2543
2551
@@ -3816,7 +3824,7 @@ Because people like using the playbook's components independently (outside of th
3816
3824
With the new changes, **all roles are now only dependent on the minimal `matrix-base` role**. They are no longer dependent among themselves.
3817
3825
3818
3826
In addition, the following components can now be completely disabled (for those who want/need to):
3819
-
- `matrix-coturn` by using `matrix_coturn_enabled: false`
3827
+
- `matrix-coturn` by using `coturn_enabled: false`
3820
3828
- `matrix-mailer` by using `matrix_mailer_enabled: false`
3821
3829
- `matrix-postgres` by using `matrix_postgres_enabled: false`
3822
3830
@@ -4036,7 +4044,7 @@ The following playbook variables were renamed:
4036
4044
- from `matrix_docker_image_mautrix_telegram` to `matrix_mautrix_telegram_docker_image`
4037
4045
- from `matrix_docker_image_mautrix_whatsapp` to `matrix_mautrix_whatsapp_docker_image`
4038
4046
- from `matrix_docker_image_mailer` to `matrix_mailer_docker_image`
4039
-
- from `matrix_docker_image_coturn` to `matrix_coturn_docker_image`
4047
+
- from `matrix_docker_image_coturn` to `coturn_container_image`
4040
4048
- from `matrix_docker_image_goofys` to `matrix_s3_goofys_docker_image`
4041
4049
- from `matrix_docker_image_riot` to `matrix_riot_web_docker_image`
4042
4050
- from `matrix_docker_image_nginx` to `matrix_nginx_proxy_docker_image`
Copy file name to clipboardExpand all lines: docs/configuring-playbook-turn.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,19 +26,19 @@ In the `hosts` file we explicitly ask for your server's external IP address when
26
26
If you'd rather use a local IP for `ansible_host`, add the following configuration to your `vars.yml` file. Make sure to replace `YOUR_PUBLIC_IP` with the pubic IP used by the server.
If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [echoip](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `matrix_coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable.
32
+
If you'd like to rely on external IP address auto-detection (not recommended unless you need it), set an empty value to the variable. The playbook will automatically contact an [echoip](https://github.com/mpolden/echoip)-compatible service (`https://ifconfig.co/json` by default) to determine your server's IP address. This API endpoint is configurable via the `coturn_turn_external_ip_address_auto_detection_echoip_service_url` variable.
33
33
34
34
>[!NOTE]
35
35
> You can self-host the echoip service by using the [Mother-of-All-Self-Hosting (MASH)](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook. See [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/echoip.md) for the instruction to install it with the playbook. If you are wondering how to use it for your Matrix server, refer to [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/setting-up-services-on-mdad-server.md) for the overview.
36
36
37
37
If your server has multiple external IP addresses, the coturn role offers a different variable for specifying them:
38
38
39
39
```yaml
40
-
# Note: matrix_coturn_turn_external_ip_addresses is different than matrix_coturn_turn_external_ip_address
### Change the authentication mechanism (optional)
@@ -48,7 +48,7 @@ The playbook uses the [`auth-secret` authentication method](https://github.com/c
48
48
To do so, add the following configuration to your `vars.yml` file:
49
49
50
50
```yaml
51
-
matrix_coturn_authentication_method: lt-cred-mech
51
+
coturn_authentication_method: lt-cred-mech
52
52
```
53
53
54
54
Regardless of the selected authentication method, the playbook generates secrets automatically and passes them to the homeserver and coturn.
@@ -62,7 +62,7 @@ By default, Coturn uses the same hostname as your Matrix homeserver (the value o
62
62
If you'd like to use a custom subdomain for Coturn (e.g., `turn.example.com` or `t.matrix.example.com`), add the following configuration to your `vars.yml` file:
63
63
64
64
```yaml
65
-
matrix_coturn_hostname: turn.example.com
65
+
coturn_hostname: turn.example.com
66
66
```
67
67
68
68
The playbook will automatically:
@@ -78,7 +78,7 @@ If you'd like to use another TURN server (be it coturn or some other one), add t
78
78
79
79
```yaml
80
80
# Disable integrated coturn server
81
-
matrix_coturn_enabled: false
81
+
coturn_enabled: false
82
82
83
83
# Point Synapse to your other coturn server
84
84
matrix_synapse_turn_uris:
@@ -99,30 +99,30 @@ You can put multiple host/port combinations if you'd like to.
99
99
100
100
### Edit the reloading schedule (optional)
101
101
102
-
By default the service is reloaded on 6:30 a.m. every day based on the `matrix_coturn_reload_schedule` variable so that new SSL certificates can kick in. It is defined in the format of systemd timer calendar.
102
+
By default the service is reloaded on 6:30 a.m. every day based on the `coturn_reload_schedule` variable so that new SSL certificates can kick in. It is defined in the format of systemd timer calendar.
103
103
104
104
To edit the schedule, add the following configuration to your `vars.yml` file (adapt to your needs):
105
105
106
106
```yaml
107
-
matrix_coturn_reload_schedule: "*-*-* 06:30:00"
107
+
coturn_reload_schedule: "*-*-* 06:30:00"
108
108
```
109
109
110
-
**Note**: the actual job may run with a delay. See `matrix_coturn_reload_schedule_randomized_delay_sec` for its default value.
110
+
**Note**: the actual job may run with a delay. See `coturn_reload_schedule_randomized_delay_sec` for its default value.
111
111
112
112
### Extending the configuration
113
113
114
114
There are some additional things you may wish to configure about the TURN server.
115
115
116
116
Take a look at:
117
117
118
-
- `roles/custom/matrix-coturn/defaults/main.yml`for some variables that you can customize via your `vars.yml` file
118
+
- `roles/galaxy/coturn/defaults/main.yml`for some variables that you can customize via your `vars.yml` file
119
119
120
120
## Disabling coturn
121
121
122
122
If, for some reason, you'd like for the playbook to not install coturn (or to uninstall it if it was previously installed), add the following configuration to your `vars.yml` file:
123
123
124
124
```yaml
125
-
matrix_coturn_enabled: false
125
+
coturn_enabled: false
126
126
```
127
127
128
128
In that case, Synapse would not point to any coturn servers and audio/video call functionality may fail.
Copy file name to clipboardExpand all lines: docs/howto-srv-server-delegation.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,10 +104,10 @@ This should not happen again afterwards as Traefik will renew certificates well
104
104
105
105
```yaml
106
106
# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else []
124
+
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and coturn_tls_enabled else []
# Only depend on docker.service, this removes the dependency on the certificate exporter, might imply the need to manually restart coturn on the first installation once the certificates are obtained, afterwards, the reload service should handle things
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and matrix_coturn_tls_enabled else []
185
+
] if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled and coturn_tls_enabled else []
0 commit comments