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

41 lines
1.1 KiB
Markdown

# LiveKit — local dev
Self-hosted SFU for voice + video. Runs in Docker on host-network mode so
WebRTC UDP ports work natively.
## Start / Stop
```bash
# 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.