restreamer-ui-v2/docker-entrypoint.sh

45 lines
1.8 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:-}",
};
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 in background ──────────────────────────
echo "[entrypoint] Starting Facebook OAuth2 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!}" \
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