fix(stacks): coturn annonce la bonne IP et publie 3478 en UDP
`external-ip` pointait sur 91.121.90.228, l'adresse d'admin.opytex.org, alors que la stack tourne sur chioggia (188.165.240.182) : coturn annonçait aux clients une machine qui n'écoute rien sur ces ports. 3478 n'était par ailleurs publié qu'en TCP, alors qu'un client TURN tente l'UDP en premier. Les deux défauts se cumulaient, le relais était inopérant. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -182,21 +182,27 @@ zcat /other/backups/db-dumps/matrix_poneyworld.sql.gz | grep -c "CREATE TABLE"
|
||||
|
||||
Un `0` signifie que la sauvegarde est vide.
|
||||
|
||||
## L'IP publique est écrite en dur, à deux endroits
|
||||
|
||||
`coturn/turnserver.conf` (`external-ip`) et `livekit/livekit.yaml` (`node_ip`)
|
||||
portent tous deux l'adresse publique de chioggia, `188.165.240.182`. Les deux
|
||||
services tournent en bridge : ils ne voient qu'une IP privée et ne peuvent pas
|
||||
deviner celle qu'il faut annoncer aux clients.
|
||||
|
||||
**Si la machine change d'adresse, ces deux fichiers doivent changer avec
|
||||
elle.** Aucun des deux ne le signalera : coturn et LiveKit démarrent
|
||||
normalement en annonçant une adresse erronée, et seuls les appels échouent —
|
||||
sans erreur dans les logs, puisque du point de vue des serveurs tout va bien.
|
||||
|
||||
C'est déjà arrivé : `external-ip` a pointé pendant des mois sur
|
||||
`91.121.90.228`, l'adresse d'`admin.opytex.org`.
|
||||
|
||||
## Défauts connus
|
||||
|
||||
1. **`external-ip` de coturn pointe sur une autre machine.**
|
||||
`coturn/turnserver.conf` annonce `91.121.90.228`, alors que chioggia est en
|
||||
`188.165.240.182` (l'adresse que `livekit.yaml` déclare en `node_ip`).
|
||||
coturn annonce donc aux clients une adresse qui n'est pas la sienne.
|
||||
|
||||
2. **UDP 3478 n'est pas publié.** `ports:` déclare `3478:3478`, sans `/udp` —
|
||||
donc TCP seul. Un client TURN parle UDP en premier. Combiné au point 1,
|
||||
coturn est très probablement inopérant.
|
||||
|
||||
3. **Trois images en tag flottant** : `nginx:latest`,
|
||||
`livekit/livekit-server:latest`, `ghcr.io/element-hq/lk-jwt-service:latest`.
|
||||
La convention du dépôt veut une version en dur, et Renovate ne sait rien
|
||||
faire d'un `latest`.
|
||||
**Trois images en tag flottant** : `nginx:latest`,
|
||||
`livekit/livekit-server:latest`, `ghcr.io/element-hq/lk-jwt-service:latest`.
|
||||
La convention du dépôt veut une version en dur, et Renovate ne sait rien faire
|
||||
d'un `latest`.
|
||||
|
||||
Références :
|
||||
|
||||
|
||||
@@ -11,4 +11,4 @@ min-port=49160
|
||||
max-port=49200
|
||||
verbose
|
||||
allow-loopback-peers
|
||||
external-ip=91.121.90.228
|
||||
external-ip=188.165.240.182
|
||||
|
||||
@@ -134,9 +134,11 @@ services:
|
||||
- --cli-password=${TURN_CLI_PASSWORD:?}
|
||||
volumes:
|
||||
- ./coturn/turnserver.conf:/etc/coturn/turnserver.conf:ro
|
||||
# 3478 et 5349 sont publiés en TCP seul, sans /udp. Voir README.md.
|
||||
# 3478 doit être publié en UDP autant qu'en TCP : un client TURN tente
|
||||
# l'UDP en premier. 5349 (TURNS) reste en TCP seul, c'est du TLS.
|
||||
ports:
|
||||
- "3478:3478"
|
||||
- "3478:3478/udp"
|
||||
- "5349:5349"
|
||||
- "49160-49200:49160-49200/udp"
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user