# Static Meet UI + nginx that proxies XMPP-over-BOSH back to prosody. # Exposed via Ingress in 70-ingress.yaml. apiVersion: apps/v1 kind: Deployment metadata: name: jitsi-web namespace: jitsi spec: replicas: 1 selector: matchLabels: { app: jitsi-web } template: metadata: labels: { app: jitsi-web } spec: containers: - name: web image: jitsi/web:stable envFrom: - configMapRef: { name: jitsi-config } - secretRef: { name: jitsi-secrets } ports: - { name: http, containerPort: 80 } # interface_config.js is rendered from /defaults at container # startup. The Jitsi-logo overlay in the video tile is controlled # by SHOW_JITSI_WATERMARK which is hardcoded to `true` upstream # and not exposed as an env var. Patch the rendered file via # postStart — runs after startup-templating; nginx re-serves the # file from disk on every request so any tiny race is fine. lifecycle: postStart: exec: command: - /bin/sh - -c - | for i in $(seq 1 30); do [ -f /config/interface_config.js ] && break sleep 1 done sed -i 's/SHOW_JITSI_WATERMARK: true/SHOW_JITSI_WATERMARK: false/' /config/interface_config.js sed -i "s|JITSI_WATERMARK_LINK: '[^']*'|JITSI_WATERMARK_LINK: ''|" /config/interface_config.js sed -i 's/SHOW_POWERED_BY: true/SHOW_POWERED_BY: false/' /config/interface_config.js readinessProbe: httpGet: { path: /, port: 80 } initialDelaySeconds: 10 periodSeconds: 5 resources: requests: { cpu: 50m, memory: 128Mi } limits: { cpu: 500m, memory: 512Mi } --- apiVersion: v1 kind: Service metadata: name: jitsi-web namespace: jitsi spec: selector: { app: jitsi-web } ports: - { name: http, port: 80, targetPort: 80 }