install_http_service.sh•3.06 kB
#!/bin/bash
# Install MCP Memory HTTP Service for systemd
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
SERVICE_FILE="$SCRIPT_DIR/mcp-memory-http.service"
SERVICE_NAME="mcp-memory-http.service"
echo "MCP Memory HTTP Service Installation"
echo "===================================="
echo ""
# Check if service file exists
if [ ! -f "$SERVICE_FILE" ]; then
echo "❌ Service file not found: $SERVICE_FILE"
exit 1
fi
# Check if .env exists
if [ ! -f "$PROJECT_DIR/.env" ]; then
echo "❌ .env file not found: $PROJECT_DIR/.env"
echo "Please create .env file with your configuration"
exit 1
fi
# Check if venv exists
if [ ! -d "$PROJECT_DIR/venv" ]; then
echo "❌ Virtual environment not found: $PROJECT_DIR/venv"
echo "Please run: python -m venv venv && source venv/bin/activate && pip install -e ."
exit 1
fi
# Install as user service (recommended) or system service
echo "Installation Options:"
echo "1. User service (recommended) - runs as your user, no sudo needed"
echo "2. System service - runs at boot, requires sudo"
read -p "Select [1/2]: " choice
case $choice in
1)
# User service
SERVICE_DIR="$HOME/.config/systemd/user"
mkdir -p "$SERVICE_DIR"
echo "Installing user service to: $SERVICE_DIR/$SERVICE_NAME"
cp "$SERVICE_FILE" "$SERVICE_DIR/$SERVICE_NAME"
# Reload systemd
systemctl --user daemon-reload
echo ""
echo "✅ Service installed successfully!"
echo ""
echo "To start the service:"
echo " systemctl --user start $SERVICE_NAME"
echo ""
echo "To enable auto-start on login:"
echo " systemctl --user enable $SERVICE_NAME"
echo " loginctl enable-linger $USER # Required for auto-start"
echo ""
echo "To check status:"
echo " systemctl --user status $SERVICE_NAME"
echo ""
echo "To view logs:"
echo " journalctl --user -u $SERVICE_NAME -f"
;;
2)
# System service
if [ "$EUID" -ne 0 ]; then
echo "❌ System service installation requires sudo"
echo "Please run: sudo $0"
exit 1
fi
SERVICE_DIR="/etc/systemd/system"
echo "Installing system service to: $SERVICE_DIR/$SERVICE_NAME"
cp "$SERVICE_FILE" "$SERVICE_DIR/$SERVICE_NAME"
# Reload systemd
systemctl daemon-reload
echo ""
echo "✅ Service installed successfully!"
echo ""
echo "To start the service:"
echo " sudo systemctl start $SERVICE_NAME"
echo ""
echo "To enable auto-start on boot:"
echo " sudo systemctl enable $SERVICE_NAME"
echo ""
echo "To check status:"
echo " sudo systemctl status $SERVICE_NAME"
echo ""
echo "To view logs:"
echo " sudo journalctl -u $SERVICE_NAME -f"
;;
*)
echo "❌ Invalid choice"
exit 1
;;
esac