ajoute le relais TURN sur 443 pour la visio (ADR 0006), avec coturn et le routage Nginx par nom

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-13 11:45:53 +02:00
parent ee079ddffb
commit 45f8a69e26
19 changed files with 457 additions and 14 deletions

View file

@ -0,0 +1,10 @@
#!/bin/bash
# Géré par Ansible (rôle turn) — ne pas modifier à la main.
# Copie le certificat Let's Encrypt dans un endroit lisible par coturn (sa
# clé privée originale reste 600 root:root, hors de portée de turnserver) et
# redémarre coturn. Lancé par Ansible (premier déploiement) et par certbot à
# chaque renouvellement (/etc/letsencrypt/renewal-hooks/deploy/).
set -euo pipefail
install -o root -g turnserver -m 0640 /etc/letsencrypt/live/{{ turn_domaine_certificat }}/fullchain.pem /etc/turnserver/cert/fullchain.pem
install -o root -g turnserver -m 0640 /etc/letsencrypt/live/{{ turn_domaine_certificat }}/privkey.pem /etc/turnserver/cert/privkey.pem
systemctl restart coturn

View file

@ -0,0 +1,29 @@
# Géré par Ansible (rôle turn) — ne pas modifier à la main.
# TURNS seulement (TLS), sur 127.0.0.1 : jamais exposé directement à
# Internet. Le port public 443 y arrive par le routeur Nginx (SNI, rôle
# portail), qui transmet les octets tels quels — coturn gère son propre TLS.
listening-ip=127.0.0.1
tls-listening-port={{ turn_port_tls }}
no-udp
no-tcp
no-tls-v1
no-tls-v1_1
# Relais vers JVB (rôle visio, réseau de l'hôte) : jamais vers l'extérieur,
# toujours en boucle locale.
relay-ip=127.0.0.1
cert=/etc/turnserver/cert/fullchain.pem
pkey=/etc/turnserver/cert/privkey.pem
# Authentification par secret partagé (TURN REST API), le même que
# TURN_CREDENTIALS côté Prosody (rôle visio) : Prosody calcule un couple
# nom d'utilisateur/mot de passe valable 24 h pour chaque participant, sans
# jamais donner ce secret au navigateur.
use-auth-secret
static-auth-secret={{ turn_secret }}
realm={{ turn_realm }}
fingerprint
no-cli
no-multicast-peers