#!/bin/bash # Install / re-install the Overlord Agent host-side service. # # Run as user `erik` from /home/erik/MosswartOverlord: # bash agent/install.sh # # Requires sudo for the systemd parts (you'll be prompted once). set -euo pipefail REPO_DIR="/home/erik/MosswartOverlord" AGENT_DIR="$REPO_DIR/agent" VENV_DIR="$AGENT_DIR/.venv" SERVICE_FILE="$AGENT_DIR/overlord-agent.service" SYSTEMD_TARGET="/etc/systemd/system/overlord-agent.service" if [[ "$(pwd)" != "$REPO_DIR" ]]; then echo "Run from $REPO_DIR (currently in $(pwd))" >&2 exit 1 fi echo "==> Creating/updating venv at $VENV_DIR" if [[ ! -d "$VENV_DIR" ]]; then python3 -m venv "$VENV_DIR" fi "$VENV_DIR/bin/pip" install --quiet --upgrade pip "$VENV_DIR/bin/pip" install --quiet -r "$AGENT_DIR/requirements.txt" echo "==> Installing systemd unit" sudo cp "$SERVICE_FILE" "$SYSTEMD_TARGET" sudo systemctl daemon-reload echo "==> Enabling + starting overlord-agent" sudo systemctl enable overlord-agent sudo systemctl restart overlord-agent sleep 1 echo "==> Status:" sudo systemctl --no-pager status overlord-agent | head -15 echo "" echo "==> Smoke test:" curl -s http://127.0.0.1:8767/agent/health | python3 -m json.tool || true echo "" echo "Done. Logs: journalctl -u overlord-agent -f"