Salas de áudio e vídeo LiveKit

Salas de áudio e vídeo para grupos NIP-29 com um servidor LiveKit: endpoints de tokens, assinatura JWT e os metadados de grupo que anunciam as salas.

Configuração

  1. Defina relay.livekit_url, relay.livekit_api_key e relay.livekit_api_secret no arquivo de configuração.
  2. Adicione a tag livekit aos metadados do grupo com uma edição kind:9002 feita por um administrador.
  3. Os clientes obtêm um JWT de /.well-known/nip29/livekit/<group-id> com autenticação NIP-98 (uma chave pública banida com banpubkey do NIP-86 é recusada).
  4. O relay publica uma lista de participantes kind:39004 por grupo livekit, atualizada a cada relay.livekit_participants_interval_secs (padrão 15) e imediatamente quando o LiveKit envia webhooks para /.well-known/nip29/livekit/webhook — aponte webhook.urls do servidor LiveKit para lá e faça webhook.api_key corresponder a relay.livekit_api_key (o relay verifica o payload assinado; eventos perdidos são reconciliados pelo polling). Desativar o modo LiveKit de um grupo limpa a lista.

Verificar o suporte

sh
curl -i http://127.0.0.1:8080/.well-known/nip29/livekit

O código 204 significa que o servidor de salas está ativado.

Configuração

toml
[relay]
livekit_url = "wss://livekit.example.com"
livekit_api_key = "..."
livekit_api_secret = "..."
livekit_participants_interval_secs = 15
Tip
As configurações do LiveKit são fixas na inicialização — alterá-las exige reiniciar.