#!/bin/bash # Install Foxhunt SystemD services set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SERVICES_DIR="${SCRIPT_DIR}" # Check if running as root if [[ $EUID -ne 0 ]]; then echo "Error: This script must be run as root (use sudo)" exit 1 fi echo "Installing Foxhunt SystemD services..." # Create foxhunt user if it doesn't exist if ! id "foxhunt" &>/dev/null; then echo "Creating foxhunt user..." useradd --system --home-dir /opt/foxhunt --shell /bin/bash foxhunt mkdir -p /opt/foxhunt/{bin,config,logs,data} chown -R foxhunt:foxhunt /opt/foxhunt fi # Add foxhunt user to docker group usermod -aG docker foxhunt # Copy service files echo "Installing service files..." cp "${SERVICES_DIR}/foxhunt-database-stack.service" /etc/systemd/system/ cp "${SERVICES_DIR}/foxhunt-tli.service" /etc/systemd/system/ cp "${SERVICES_DIR}/foxhunt-backtesting.service" /etc/systemd/system/ # Set correct permissions chmod 644 /etc/systemd/system/foxhunt-*.service # Reload systemd echo "Reloading systemd daemon..." systemctl daemon-reload # Enable services (but don't start them yet) echo "Enabling services..." systemctl enable foxhunt-database-stack.service systemctl enable foxhunt-tli.service systemctl enable foxhunt-backtesting.service echo "Services installed successfully!" echo "" echo "To start services:" echo " sudo systemctl start foxhunt-database-stack" echo " sudo systemctl start foxhunt-tli" echo " sudo systemctl start foxhunt-backtesting" echo "" echo "To check status:" echo " sudo systemctl status foxhunt-database-stack" echo " sudo systemctl status foxhunt-tli" echo " sudo systemctl status foxhunt-backtesting" echo "" echo "To view logs:" echo " sudo journalctl -u foxhunt-tli -f" echo " sudo journalctl -u foxhunt-backtesting -f"