Files
story/deploy/server/install-monitoring.sh
T

49 lines
2.2 KiB
Bash
Raw Normal View History

2026-08-26 20:41:26 +08:00
#!/usr/bin/env bash
set -Eeuo pipefail
if [[ ${EUID:-$(id -u)} -ne 0 ]]; then
echo "Run this installer as root" >&2
exit 2
fi
project_root=${PLATFORM_ROOT:-/opt/data-terminal-cloud/current}
install -d -m 0700 /etc/data-terminal-cloud
install -d -m 0750 /var/lib/data-terminal-cloud-monitor
2026-08-26 21:15:03 +08:00
platform_env="$project_root/deploy/server/.env"
if [[ -r "$platform_env" && ! -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
platform_health_secret=$(sed -n 's/^PLATFORM_HEALTH_CALLBACK_SECRET=//p' "$platform_env" | head -n1)
if (( ${#platform_health_secret} >= 32 )); then
umask 077
printf '%s\n' "$platform_health_secret" >/etc/data-terminal-cloud/platform-health-callback-secret
fi
fi
if [[ -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
chmod 0600 /etc/data-terminal-cloud/platform-health-callback-secret
fi
2026-08-26 20:41:26 +08:00
if [[ ! -s /etc/data-terminal-cloud/monitor-webhook-secret ]]; then
umask 077
openssl rand -base64 48 >/etc/data-terminal-cloud/monitor-webhook-secret
fi
chmod 0600 /etc/data-terminal-cloud/monitor-webhook-secret
if [[ ! -e /etc/data-terminal-cloud/monitor.env ]]; then
2026-08-26 21:15:03 +08:00
public_origin=$(sed -n 's/^PUBLIC_ORIGIN=//p' "$platform_env" 2>/dev/null | head -n1)
report_url=
if [[ "$public_origin" == https://* && -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
report_url="$public_origin/callbacks/v1/platform-health"
fi
cat >/etc/data-terminal-cloud/monitor.env <<EOF
HOST_DEPLOYMENT_PROFILE=demo
2026-08-26 21:15:03 +08:00
PLATFORM_HEALTH_REPORT_URL=$report_url
PLATFORM_HEALTH_REPORT_SECRET_FILE=/etc/data-terminal-cloud/platform-health-callback-secret
2026-08-26 20:41:26 +08:00
ALERT_WEBHOOK_URL=
ALERT_WEBHOOK_SECRET_FILE=/etc/data-terminal-cloud/monitor-webhook-secret
EOF
fi
chmod 0600 /etc/data-terminal-cloud/monitor.env
install -m 0644 "$project_root/deploy/server/platform-health-monitor.service" /etc/systemd/system/platform-health-monitor.service
install -m 0644 "$project_root/deploy/server/platform-health-monitor.timer" /etc/systemd/system/platform-health-monitor.timer
systemctl daemon-reload
systemctl enable --now platform-health-monitor.timer
systemctl is-active --quiet platform-health-monitor.timer
echo "platform-health-monitor.timer enabled"