#!/bin/bash # Deploy IPMI Controller to production set -e PROD_HOST="192.168.5.211" PROD_USER="devmatrix" PROD_DIR="/opt/ipmi-controller" SERVICE_NAME="ipmi-controller" echo "=== Deploying IPMI Controller to Production ===" echo "Target: $PROD_HOST" # Install system dependencies echo "Installing system dependencies..." ssh $PROD_USER@$PROD_HOST "sudo apt update -qq && sudo apt install -y ipmitool python3-pip 2>/dev/null | tail -3" # Create remote directory echo "Creating remote directory..." ssh $PROD_USER@$PROD_HOST "sudo mkdir -p $PROD_DIR && sudo chown $PROD_USER:$PROD_USER $PROD_DIR" # Copy files echo "Copying files..." rsync -avz --exclude='.git' --exclude='__pycache__' --exclude='data/*.json' \ ./ $PROD_USER@$PROD_HOST:$PROD_DIR/ # Install systemd service echo "Installing systemd service..." ssh $PROD_USER@$PROD_HOST "sudo cp $PROD_DIR/ipmi-controller.service /etc/systemd/system/" ssh $PROD_USER@$PROD_HOST "sudo systemctl daemon-reload" ssh $PROD_USER@$PROD_HOST "sudo systemctl enable $SERVICE_NAME" # Restart service echo "Restarting service..." ssh $PROD_USER@$PROD_HOST "sudo systemctl restart $SERVICE_NAME" # Check status echo "Checking service status..." sleep 2 ssh $PROD_USER@$PROD_HOST "sudo systemctl status $SERVICE_NAME --no-pager" echo "" echo "=== Deployment Complete ===" echo "IPMI Controller is now running at: http://$PROD_HOST:8000" echo "" echo "To check logs: ssh $PROD_USER@$PROD_HOST 'sudo journalctl -u $SERVICE_NAME -f'"