#!/usr/bin/env bash set -euo pipefail PANEL_URL="" TOKEN="" TELEMT_URL="${TELEMT_API_URL:-http://127.0.0.1:9091}" STATE_DIR="/var/lib/telemt-panel-agent" BIN_PATH="/usr/local/bin/telemt-panel-agent" while [[ $# -gt 0 ]]; do case "$1" in --panel-url) PANEL_URL="$2"; shift 2 ;; --token) TOKEN="$2"; shift 2 ;; --telemt-url) TELEMT_URL="$2"; shift 2 ;; *) echo "Unknown arg: $1"; exit 1 ;; esac done if [[ -z "$PANEL_URL" || -z "$TOKEN" ]]; then echo "Usage: install-agent.sh --panel-url URL --token TOKEN" exit 1 fi mkdir -p "$STATE_DIR" # Prefer shipping binary from panel releases; fallback: build if go present if command -v curl >/dev/null; then ARCH=$(uname -m) case "$ARCH" in x86_64|amd64) ARCH=amd64 ;; aarch64|arm64) ARCH=arm64 ;; esac TMP=$(mktemp) if curl -fsSL "${PANEL_URL}/releases/download/latest/telemt-panel-agent-linux-${ARCH}" -o "$TMP" 2>/dev/null; then install -m 755 "$TMP" "$BIN_PATH" rm -f "$TMP" fi fi if [[ ! -x "$BIN_PATH" ]]; then echo "Agent binary not found at $BIN_PATH — place telemt-panel-agent there or build apps/agent" exit 1 fi cat > /etc/systemd/system/telemt-panel-agent.service <