53 lines
2.1 KiB
Bash
53 lines
2.1 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# ── Generate runtime config from env vars ────────────────────────────────────
|
|
CONFIG_FILE="/ui/build/config.js"
|
|
|
|
cat > "$CONFIG_FILE" <<EOF
|
|
/**
|
|
* Restreamer UI - Runtime Configuration (auto-generated by docker-entrypoint.sh)
|
|
*/
|
|
window.__RESTREAMER_CONFIG__ = {
|
|
CORE_ADDRESS: "${CORE_ADDRESS:-}",
|
|
YTDLP_URL: "${YTDLP_URL:-}",
|
|
FB_SERVER_URL: "${FB_SERVER_URL:-}",
|
|
FB_OAUTH_CALLBACK_URL: "${FB_OAUTH_CALLBACK_URL:-}",
|
|
YT_OAUTH_CALLBACK_URL: "${YT_OAUTH_CALLBACK_URL:-}",
|
|
};
|
|
EOF
|
|
|
|
echo "[entrypoint] config.js generated:"
|
|
cat "$CONFIG_FILE"
|
|
|
|
# ── Set YTDLP_HOST for Caddy reverse_proxy (default: external service or localhost) ─
|
|
export YTDLP_HOST="${YTDLP_HOST:-192.168.1.20:8282}"
|
|
|
|
# ── Persist FB data directory ─────────────────────────────────────────────────
|
|
mkdir -p /data/fb
|
|
export FB_DATA_DIR="${FB_DATA_DIR:-/data/fb}"
|
|
|
|
# ── Start Facebook OAuth2 microserver + WebRTC relay in background ────────────
|
|
echo "[entrypoint] Starting FB OAuth2 + WebRTC relay server on :3002 ..."
|
|
FB_SERVER_PORT=3002 \
|
|
FB_DATA_DIR="$FB_DATA_DIR" \
|
|
FB_ENCRYPTION_SECRET="${FB_ENCRYPTION_SECRET:-restreamer-ui-fb-secret-key-32x!}" \
|
|
RTMP_HOST="${RTMP_HOST:-127.0.0.1}" \
|
|
RTMP_PORT="${RTMP_PORT:-1935}" \
|
|
RTMP_APP="${RTMP_APP:-live}" \
|
|
FFMPEG_BIN="${FFMPEG_BIN:-ffmpeg}" \
|
|
LIVEKIT_API_KEY="${LIVEKIT_API_KEY:-}" \
|
|
LIVEKIT_API_SECRET="${LIVEKIT_API_SECRET:-}" \
|
|
LIVEKIT_WS_URL="${LIVEKIT_WS_URL:-}" \
|
|
node /ui/server/index.js &
|
|
FB_PID=$!
|
|
echo "[entrypoint] FB server PID: $FB_PID"
|
|
|
|
# ── Wait briefly for FB server to bind ───────────────────────────────────────
|
|
sleep 1
|
|
|
|
# ── Start Caddy (foreground) ──────────────────────────────────────────────────
|
|
echo "[entrypoint] Starting Caddy on :3000 ..."
|
|
exec caddy run --config /ui/Caddyfile
|
|
|