feat: all-in-one production deployment with install script
Redesign deployment as a single docker-compose with Backspace, Caddy (auto-HTTPS), and LiveKit (voice/video) using hybrid networking: Backspace+Caddy on isolated bridge, LiveKit on host mode for WebRTC. - Add install.sh: interactive installer that handles Docker setup, domain/DNS verification, secret generation, LiveKit config, and deployment with health-check wait - Add Caddyfile: static reverse proxy config using Caddy env vars, routes /livekit/* to host-mode LiveKit via host.docker.internal - Rewrite docker-compose.yml: all-in-one with profiles (voice), no external volumes/networks, bind mount ./data for visibility - Fix livekit.ts: use LIVEKIT_URL env var directly instead of Host-header derivation that made the env var dead code - Fix Dockerfile: health check reads $PORT dynamically - Update .env.example: add DOMAIN, COMPOSE_PROFILES documentation - Update .gitignore: add livekit.yaml (contains secrets)
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Backspace — Caddy reverse proxy configuration
|
||||
# DOMAIN is read from the container environment (set via docker-compose.yml)
|
||||
|
||||
{$DOMAIN} {
|
||||
# LiveKit signaling — strip /livekit prefix, forward to host-mode LiveKit
|
||||
handle_path /livekit/* {
|
||||
reverse_proxy host.docker.internal:7880
|
||||
}
|
||||
|
||||
# Backspace API, WebSocket, and frontend — Docker DNS resolves "backspace"
|
||||
reverse_proxy backspace:3000
|
||||
}
|
||||
Reference in New Issue
Block a user