40 lines
1.6 KiB
YAML
40 lines
1.6 KiB
YAML
# LiveKit SFU + JWT service for MatrixRTC (Element X / Element Call)
|
|
# Host: matrix-ubuntu (192.168.0.154 / 100.85.21.51)
|
|
# Deploy path: /opt/livekit/
|
|
#
|
|
# Public endpoints (via NPM on Calypso -> livekit.mx.vish.gg):
|
|
# LiveKit SFU: https://livekit.mx.vish.gg/livekit/sfu/
|
|
# JWT service: https://livekit.mx.vish.gg/livekit/jwt/
|
|
# Healthcheck: https://livekit.mx.vish.gg/livekit/jwt/healthz
|
|
#
|
|
# Announced via .well-known/matrix/client on mx.vish.gg:
|
|
# "org.matrix.msc4143.rtc_foci": [{"type":"livekit","livekit_service_url":"https://livekit.mx.vish.gg/livekit/jwt"}]
|
|
#
|
|
# NOTE: This compose file lives at /opt/livekit/docker-compose.yml on matrix-ubuntu
|
|
# It is NOT deployed via Portainer GitOps — managed manually on the host.
|
|
# Config file: /opt/livekit/livekit.yaml
|
|
|
|
services:
|
|
livekit:
|
|
image: livekit/livekit-server:latest
|
|
container_name: livekit
|
|
command: --config /etc/livekit/livekit.yaml
|
|
volumes:
|
|
- /opt/livekit/livekit.yaml:/etc/livekit/livekit.yaml:ro
|
|
# network_mode: host — uses host networking for WebRTC NAT traversal
|
|
# Ports: 7880 (HTTP/WS), 7881 (RTC TCP), 50000-60000/udp (WebRTC media)
|
|
network_mode: host
|
|
restart: unless-stopped
|
|
|
|
lk-jwt-service:
|
|
image: ghcr.io/element-hq/lk-jwt-service:latest-ci
|
|
container_name: lk-jwt-service
|
|
environment:
|
|
- LIVEKIT_URL=wss://livekit.mx.vish.gg
|
|
- LIVEKIT_KEY=livekit_key
|
|
- LIVEKIT_SECRET=800649495d6b00e27fbafc71REDACTED_GITEA_TOKEN # pragma: allowlist secret
|
|
- LIVEKIT_FULL_ACCESS_HOMESERVERS=mx.vish.gg
|
|
ports:
|
|
- "8089:8080"
|
|
restart: unless-stopped
|