diff --git a/stacks/matrix.poneyworld.net/README.md b/stacks/matrix.poneyworld.net/README.md index 41803db..4c42058 100644 --- a/stacks/matrix.poneyworld.net/README.md +++ b/stacks/matrix.poneyworld.net/README.md @@ -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 : diff --git a/stacks/matrix.poneyworld.net/coturn/turnserver.conf b/stacks/matrix.poneyworld.net/coturn/turnserver.conf index cee7781..72d94e9 100644 --- a/stacks/matrix.poneyworld.net/coturn/turnserver.conf +++ b/stacks/matrix.poneyworld.net/coturn/turnserver.conf @@ -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 diff --git a/stacks/matrix.poneyworld.net/docker-compose.yml b/stacks/matrix.poneyworld.net/docker-compose.yml index 6d5f6f5..d610c73 100644 --- a/stacks/matrix.poneyworld.net/docker-compose.yml +++ b/stacks/matrix.poneyworld.net/docker-compose.yml @@ -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: