diff --git a/CLAUDE.md b/CLAUDE.md index fbc8a4f..6c1bbc7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,7 +11,7 @@ Vier Container nach offiziellem `jitsi/docker-jitsi-meet`-Pattern: - **web** (`jitsi/web`): Nginx + Meet-Frontend, exposed via Ingress :443 - **prosody** (`jitsi/prosody`): XMPP-Server, cluster-intern - **jicofo** (`jitsi/jicofo`): Focus/Conference-Manager, cluster-intern -- **jvb** (`jitsi/jvb`): Videobridge — `hostNetwork: true` damit UDP 10000 direkt auf Node-Interface bindet (alternativ Sub-LoadBalancer, aber unzuverlässig) +- **jvb** (`jitsi/jvb`): Videobridge — `hostNetwork: true` damit UDP **10001** direkt auf Node-Interface bindet. UDP 10000 ist auf darkember bereits von einer OpenDesk-Bundle-Jitsi-Instanz belegt (`opendesk/jitsi-jvb` LoadBalancer-Service), daher Shift auf 10001. Inter-Component-Auth über shared XMPP-Component-Secrets (im Kubernetes-Secret, nicht im Repo). @@ -28,7 +28,7 @@ Inter-Component-Auth über shared XMPP-Component-Secrets (im Kubernetes-Secret, ## Setup-Schritte (einmalig) 1. **DNS**: A-Record `meet.it.financeflow.de` → öffentliche IP von darkemberserver -2. **Firewall/Router**: UDP-Port **10000** auf darkember-Node forwarden (kritisch! ohne das funktioniert nur Audio, kein Video) +2. **Firewall/Router**: UDP-Port **10001** auf darkember-Node forwarden (kritisch! ohne das funktioniert nur Audio, kein Video). Hinweis: 10000 ist von OpenDesks Jitsi-Bundle belegt, daher der Versatz. 3. **Secrets generieren + applyen**: ```bash ./scripts/generate-secrets.sh > infra/k3s/20-secrets.yaml diff --git a/infra/k3s/60-jvb.yaml b/infra/k3s/60-jvb.yaml index 9d6d1f8..2c1b23d 100644 --- a/infra/k3s/60-jvb.yaml +++ b/infra/k3s/60-jvb.yaml @@ -1,9 +1,9 @@ # Videobridge — routes the actual media streams. Two critical bits: # -# 1) hostNetwork: true — JVB binds UDP 10000 directly on the node's -# external interface. The router/firewall must forward UDP 10000 -# from the public IP to that node, otherwise browsers can't reach -# it and you get audio-only fallback. +# 1) hostNetwork: true — JVB binds UDP 10001 directly on the node's +# external interface. UDP 10000 is taken by an OpenDesk-bundled +# Jitsi already running on the same node, so we shift to 10001. +# Router/firewall forward UDP 10001 → darkember accordingly. # # 2) DOCKER_HOST_ADDRESS — the public IP/hostname browsers will use # to reach the bridge. Replace `__PUBLIC_IP__` with darkember's @@ -36,11 +36,11 @@ spec: - name: DOCKER_HOST_ADDRESS value: "__PUBLIC_IP__" - name: JVB_PORT - value: "10000" + value: "10001" ports: - name: media - containerPort: 10000 - hostPort: 10000 + containerPort: 10001 + hostPort: 10001 protocol: UDP resources: requests: { cpu: 100m, memory: 256Mi }