Files
2026-04-18 23:11:35 +02:00

1.1 KiB

LiveKit — local dev

Self-hosted SFU for voice + video. Runs in Docker on host-network mode so WebRTC UDP ports work natively.

Start / Stop

# from repo root
docker compose -f infra/livekit/docker-compose.yml up -d
docker compose -f infra/livekit/docker-compose.yml logs -f livekit
docker compose -f infra/livekit/docker-compose.yml down

Endpoints

Purpose URL / Port
Signaling WS ws://localhost:7880
TCP fallback tcp://localhost:7881
UDP RTC 50000-50100/udp
coturn 3478/udp+tcp

Dev keys

Baked into livekit.yaml:

  • LIVEKIT_API_KEY=devkey
  • LIVEKIT_API_SECRET=devsecret-at-least-32-bytes-long-please
  • LIVEKIT_URL=ws://localhost:7880

Same values go into apps/desktop/.env (via VITE_LIVEKIT_URL) and into the edge function's supabase/functions/.env.

Prod (later)

Same image on the Hetzner VPS. Caddy terminates TLS at wss://livekit.netralax.cloud. coturn exposed on turn.netralax.cloud:5349 (TURNS). Secrets generated via openssl rand -hex 32 and stored in the server env + Supabase edge secrets.