#!/bin/sh set -eu if [ "$(id -u)" -ne 0 ]; then echo "Запустите команду установки от root." >&2 exit 1 fi if [ -z "${DASHBOARD_URL:-}" ] || [ -z "${ENROLL_TOKEN:-}" ]; then echo "Не заданы DASHBOARD_URL и ENROLL_TOKEN. Создайте команду в настройках Dashboard." >&2 exit 1 fi GITEA_URL=${GITEA_URL:-https://git.myown.center} GITEA_REPOSITORY=${GITEA_REPOSITORY:-maxim/ProxmoxDash} VMID=${VMID:-0} AGENT_NAME=${AGENT_NAME:-$(hostname)} release_json=$(curl -fsSL "$GITEA_URL/api/v1/repos/$GITEA_REPOSITORY/releases/latest") download_url=$(printf '%s' "$release_json" | sed -n 's/.*"browser_download_url":"\([^"]*\/proxmox-dashboard-linux-amd64\)".*/\1/p' | head -n 1) if [ -z "$download_url" ]; then echo "В последнем релизе не найден Linux-бинарник." >&2 exit 1 fi install -d -m 0700 /var/lib/proxmox-dashboard-agent temporary_binary=$(mktemp /tmp/proxmox-dashboard-agent.XXXXXX) trap 'rm -f "$temporary_binary"' EXIT curl -fsSL "$download_url" -o "$temporary_binary" install -m 0755 "$temporary_binary" /var/lib/proxmox-dashboard-agent/proxmox-dashboard-agent umask 077 { printf 'DASHBOARD_URL=%s\n' "$DASHBOARD_URL" printf 'ENROLL_TOKEN=%s\n' "$ENROLL_TOKEN" printf 'AGENT_NAME=%s\n' "$AGENT_NAME" printf 'VMID=%s\n' "$VMID" } > /etc/proxmox-dashboard-agent.env cat > /etc/systemd/system/proxmox-dashboard-agent.service <<'UNIT' [Unit] Description=Proxmox Dashboard read-only guest agent After=network-online.target docker.service Wants=network-online.target [Service] Type=simple EnvironmentFile=/etc/proxmox-dashboard-agent.env ExecStart=/var/lib/proxmox-dashboard-agent/proxmox-dashboard-agent --agent --agent-server ${DASHBOARD_URL} --agent-enroll-token ${ENROLL_TOKEN} --agent-name ${AGENT_NAME} --agent-vmid ${VMID} Restart=always RestartSec=5 NoNewPrivileges=true ProtectHome=true PrivateTmp=true ProtectSystem=strict ReadWritePaths=/var/lib/proxmox-dashboard-agent [Install] WantedBy=multi-user.target UNIT systemctl daemon-reload systemctl enable proxmox-dashboard-agent.service systemctl restart proxmox-dashboard-agent.service rm -f /usr/local/bin/proxmox-dashboard-agent echo "Агент установлен. Через несколько секунд он появится в Dashboard."