Files
byGalax 5bc30c950c feat(infra): migrate self-hosted backend to netralax.de
Move Supabase + LiveKit from the netralax.cloud VPS to a new netralax.de server. Adds the migration runbook (docs/), one-time move scripts (scripts/migrate/), and prod Caddy/LiveKit config templates (infra/). Repoints the desktop publish/changelog URLs and prod ops config to .de. JWT_SECRET + VAPID copied identically so already-installed clients keep working; the new server also serves the legacy .cloud hostnames.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 19:39:04 +02:00
..
2026-04-18 23:11:35 +02:00
2026-04-18 23:11:35 +02:00
2026-04-18 23:11:35 +02:00

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.