Files
tatuchat/docker-compose.matrix-rtc.yml
Welton Moura 8927e80cce
Some checks failed
Main Deploy Workflow / deploy_web (push) Has been cancelled
Main Deploy Workflow / deploy_playstore_internal (push) Has been cancelled
compose para calls
2026-09-14 15:00:45 -03:00

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