feat: add ops center and node onboarding flow

This commit is contained in:
Your Name
2026-04-18 23:52:51 +08:00
parent 246838ae4c
commit b9c29481b5
142 changed files with 89727 additions and 186 deletions

View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="${1:-/opt/domaincheck}"
ENV_FILE="/etc/default/domaincheck-node-agent"
SERVICE_FILE="/etc/systemd/system/domaincheck-node-agent.service"
SERVICE_NAME="domaincheck-node-agent"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
resolve_project_root() {
local candidate
for candidate in \
"${ROOT_DIR}/domainCheck" \
"${ROOT_DIR}/domain-api" \
"${ROOT_DIR}" \
"$(cd "${SCRIPT_DIR}/../.." && pwd)"; do
if [[ -f "${candidate}/deploy/systemd/domain-node-agent.service" && -f "${candidate}/deploy/multi-region/templates/domaincheck-node-agent.env.example" ]]; then
printf '%s' "${candidate}"
return 0
fi
done
return 1
}
PROJECT_ROOT="$(resolve_project_root || true)"
if [[ -z "${PROJECT_ROOT}" ]]; then
echo "unable to resolve project root under ${ROOT_DIR} or ${SCRIPT_DIR}" >&2
exit 1
fi
TEMPLATE_FILE="${PROJECT_ROOT}/deploy/multi-region/templates/domaincheck-node-agent.env.example"
UNIT_TEMPLATE="${PROJECT_ROOT}/deploy/systemd/domain-node-agent.service"
echo "[1/5] install systemd unit"
install -m 0644 "${UNIT_TEMPLATE}" "${SERVICE_FILE}"
echo "[2/5] install env template if absent"
if [[ ! -f "${ENV_FILE}" ]]; then
install -m 0644 "${TEMPLATE_FILE}" "${ENV_FILE}"
echo "created ${ENV_FILE}"
else
echo "keep existing ${ENV_FILE}"
fi
echo "[3/5] reload systemd"
systemctl daemon-reload
echo "[4/5] enable service"
systemctl enable "${SERVICE_NAME}" >/dev/null
echo "[5/5] next steps"
echo "project_root=${PROJECT_ROOT}"
echo "edit ${ENV_FILE} and set:"
echo " OPS_CONTROL_PLANE_BASE_URL"
echo " OPS_AGENT_TOKEN"
echo " NODE_CODE / NODE_REGION / NODE_ROLE"
echo
echo "then run:"
echo " systemctl restart ${SERVICE_NAME}"
echo " systemctl status ${SERVICE_NAME} --no-pager -l"