68 lines
3.0 KiB
YAML
68 lines
3.0 KiB
YAML
# Docker Compose - Matrix RTC (LiveKit SFU + lk-jwt-service) para uso com o TatuChat
|
|
# Instalação personalizada (Custom Install) no CasaOS.
|
|
#
|
|
# Pré-requisitos / passos depois de subir:
|
|
# 1) NPM (Nginx Proxy Manager) - criar 2 hosts novos:
|
|
# - lk.weltonmoura.com.br -> http://<IP_DO_CASAOS>:7880 (ativar "Websockets Support")
|
|
# - rtc.weltonmoura.com.br -> http://<IP_DO_CASAOS>:8081
|
|
# <IP_DO_CASAOS> = IP LAN exibido nas configurações do CasaOS (ou tente 172.17.0.1).
|
|
# 2) No host que já existe no NPM (matrix.weltonmoura.com.br, proxy do Dendrite),
|
|
# adicionar no campo "Advanced" o bloco do /.well-known/matrix/client (ver instruções).
|
|
# 3) Firewall/port forward: liberar 7881/tcp, 7882/udp e 50100-50200/udp (mídia direta).
|
|
#
|
|
# IMPORTANTE: substitua <LIVEKIT_KEY> e <LIVEKIT_SECRET> por valores fortes
|
|
# (ex.: chave ~20 chars, segredo ~64 chars).
|
|
# Ajuste LIVEKIT_FULL_ACCESS_HOMESERVERS para o mesmo "server_name" do seu dendrite.yaml.
|
|
#
|
|
# Fonte da configuração: https://docs.livekit.io/ | github.com/element-hq/lk-jwt-service
|
|
|
|
services:
|
|
livekit:
|
|
container_name: matrix-rtc-livekit
|
|
image: livekit/livekit-server:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "7880:7880/tcp" # API + WebSocket (usado pelo NPM em lk.weltonmoura.com.br)
|
|
- "7881:7881/tcp" # RTC over TCP (fallback de sinalização para clientes)
|
|
- "7882:7882/udp" # RTC UDP inicial (contato direto com clientes)
|
|
- "50100-50200:50100-50200/udp" # faixa de mídia WebRTC
|
|
environment:
|
|
LIVEKIT_CONFIG: |-
|
|
port: 7880
|
|
rtc:
|
|
tcp_port: 7881
|
|
udp_port: 7882
|
|
port_range_start: 50100
|
|
port_range_end: 50200
|
|
# use_external_ip busca a IP pública via STUN (ideal p/ VPS atrás de 1:1 NAT).
|
|
# Se a IP pública estiver direto na interface, troque por:
|
|
# use_external_ip: false
|
|
# node_ip: "SEU_IP_PUBLICO"
|
|
use_external_ip: true
|
|
room:
|
|
# Sem auto_create: o lk-jwt-service cria as salas só p/ usuários full-access
|
|
auto_create: false
|
|
keys:
|
|
<LIVEKIT_KEY>: <LIVEKIT_SECRET>
|
|
healthcheck:
|
|
test: [ "CMD", "livekit-server", "healthcheck", "get-health" ]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
lk-jwt-service:
|
|
container_name: matrix-rtc-jwt
|
|
image: ghcr.io/element-hq/lk-jwt-service:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8081:8081" # alcançado pelo NPM em rtc.weltonmoura.com.br
|
|
environment:
|
|
- LIVEKIT_JWT_BIND=:8081
|
|
# URL pública (wss) do LiveKit, exposta pelo NPM em lk.weltonmoura.com.br
|
|
- LIVEKIT_URL=wss://lk.weltonmoura.com.br
|
|
- LIVEKIT_KEY=<LIVEKIT_KEY>
|
|
- LIVEKIT_SECRET=<LIVEKIT_SECRET>
|
|
# Server name do seu Dendrite (dendrite.yaml -> global.server_name).
|
|
# Se usou matrix.weltonmoura.com.br como server_name, troque aqui.
|
|
- LIVEKIT_FULL_ACCESS_HOMESERVERS=weltonmoura.com.br
|
|
- LIVEKIT_LOG_LEVEL=info |