Аудио- и видеокомнаты LiveKit

Аудио- и видеокомнаты для групп NIP-29 через сервер LiveKit: конечные точки токенов, подпись JWT и метаданные группы, рекламирующие комнаты.

Настройка

  1. Задайте relay.livekit_url, relay.livekit_api_key и relay.livekit_api_secret в файле конфигурации.
  2. Добавьте тег livekit в метаданные группы через правку kind:9002 от имени администратора.
  3. Клиенты получают JWT из /.well-known/nip29/livekit/<group-id> с аутентификацией NIP-98 (публичный ключ, заблокированный через banpubkey по NIP-86, отклоняется).
  4. Релей публикует список участников kind:39004 для каждой livekit-группы, обновляя его каждые relay.livekit_participants_interval_secs (по умолчанию 15) и сразу при получении вебхуков LiveKit на /.well-known/nip29/livekit/webhook — направьте webhook.urls сервера LiveKit туда, а webhook.api_key должен совпадать с relay.livekit_api_key (релей проверяет подписанный payload; пропущенные события сверяет опрос). Отключение LiveKit-режима группы очищает список.

Проверка поддержки

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

204 означает, что сервер комнат включён.

Конфигурация

toml
[relay]
livekit_url = "wss://livekit.example.com"
livekit_api_key = "..."
livekit_api_secret = "..."
livekit_participants_interval_secs = 15
Tip
Настройки LiveKit фиксируются при запуске — их изменение требует перезапуска.