39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Ubuntu/systemd 前端启动入口。
|
|
# 运行生产构建后的 Next.js 服务;开发调试继续使用 scripts/start-webui.sh。
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
ENV_FILE="${ROOT_DIR}/.env.deploy"
|
|
|
|
if [[ -f "${ENV_FILE}" ]]; then
|
|
# shellcheck disable=SC1090
|
|
source "${ENV_FILE}"
|
|
else
|
|
echo "Missing deploy config: ${ENV_FILE}" >&2
|
|
echo "Run: bash scripts/deploy-ubuntu.sh" >&2
|
|
exit 1
|
|
fi
|
|
|
|
BACKEND_HOST="${CLAW_BACKEND_HOST:-127.0.0.1}"
|
|
BACKEND_PORT="${CLAW_BACKEND_PORT:-8765}"
|
|
FRONTEND_HOST="${CLAW_FRONTEND_HOST:-0.0.0.0}"
|
|
FRONTEND_PORT="${CLAW_FRONTEND_PORT:-3000}"
|
|
NPM_BIN="${CLAW_NPM_BIN:-$(command -v npm || true)}"
|
|
|
|
if [[ -n "${CLAW_NODE_BIN_DIR:-}" ]]; then
|
|
export PATH="${CLAW_NODE_BIN_DIR}:${PATH}"
|
|
fi
|
|
|
|
if [[ -z "${NPM_BIN}" || ! -x "${NPM_BIN}" ]]; then
|
|
echo "npm not found for frontend service." >&2
|
|
echo "Run deploy again from a shell where npm is available: bash scripts/deploy-ubuntu.sh" >&2
|
|
exit 1
|
|
fi
|
|
|
|
export CLAW_API_URL="${CLAW_API_URL:-http://${BACKEND_HOST}:${BACKEND_PORT}}"
|
|
|
|
cd "${ROOT_DIR}/frontend/app"
|
|
exec "${NPM_BIN}" run start -- --hostname "${FRONTEND_HOST}" --port "${FRONTEND_PORT}"
|