#!/bin/sh set -e REPO="AchuM/backupagent.ai" INSTALL_DIR="/usr/local/bin" CONFIG_DIR="/etc/backupagent" DATA_DIR="/var/lib/backupagent" echo "" echo " BackupAgent.ai — Installer" echo "" OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case "$ARCH" in x86_64|amd64) ARCH="amd64" ;; aarch64|arm64) ARCH="arm64" ;; *) echo "Error: Unsupported architecture: $ARCH"; exit 1 ;; esac echo " Detected: ${OS}/${ARCH}" LATEST=$(curl -fsSL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' || echo "v1.0.0") BINARY="backupagent-${OS}-${ARCH}" URL="https://github.com/${REPO}/releases/download/${LATEST}/${BINARY}" echo " Downloading BackupAgent ${LATEST}..." if curl -fsSL -o /tmp/backupagent "${URL}" 2>/dev/null; then echo " Downloaded from GitHub releases" else echo " Note: Release binary not yet available." echo " Build from source: cd agent && go build -o /usr/local/bin/backupagent" exit 1 fi chmod +x /tmp/backupagent sudo mv /tmp/backupagent "${INSTALL_DIR}/backupagent" sudo mkdir -p "${CONFIG_DIR}" "${DATA_DIR}" sudo chmod 700 "${CONFIG_DIR}" "${DATA_DIR}" if [ "${OS}" = "linux" ] && command -v systemctl >/dev/null 2>&1; then sudo tee /etc/systemd/system/backupagent.service >/dev/null <<'UNIT' [Unit] Description=BackupAgent — AI-Verified Database Backups After=network-online.target docker.service Wants=network-online.target [Service] Type=simple ExecStart=/usr/local/bin/backupagent run Restart=always RestartSec=10 User=root WorkingDirectory=/etc/backupagent ProtectSystem=strict ReadWritePaths=/etc/backupagent /var/lib/backupagent /tmp PrivateTmp=yes [Install] WantedBy=multi-user.target UNIT sudo systemctl daemon-reload echo " Systemd service installed" fi echo "" echo " BackupAgent installed!" echo " Next: backupagent register --token YOUR_TOKEN" echo ""