#!/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"