#!/bin/bash set -e # --- Sodistore Home --- REMOTE_USER="inesco" REMOTE_HOST="10.2.5.33" HOME_PATH="/home/inesco/SodiStoreHome" REMOTE_BASE="/home/inesco/SodiStoreHome/ModbusTCP" # --- Sodistore Max --- # REMOTE_USER="ie-entwicklung" # REMOTE_HOST="10.2.5.25" # HOME_PATH="/home/ie-entwicklung/salimax" # REMOTE_BASE="/home/ie-entwicklung/salimax/ModbusTCP" REMOTE_DIST="$REMOTE_BASE/dist" SERVICE_NAME="ModbusTCP.service" PYTHON_FILE="modbus_tcp_server.py" SERVICE_FILE="ModbusTCP.service" BINARY_NAME="modbus_tcp_server" # SUDO_PASSWORD="Salimax4x25" # echo "==> Preparing Python virtual environment..." # cd "$HOME_PATH" # python3 -m venv venv # source venv/bin/activate # pip install watchdog # pip install pymodbus==2.5.3 # pip install pyinstaller # deactivate # echo "==> Copying source file to remote..." scp "$PYTHON_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE/" # scp "$SERVICE_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_BASE/" echo "==> Building Python binary on remote..." ssh "$REMOTE_USER@$REMOTE_HOST" " cd $HOME_PATH && \ source venv/bin/activate && \ cd ModbusTCP && \ pyinstaller --onefile $PYTHON_FILE " echo "==> Cleaning up temporary build artifacts on remote..." ssh "$REMOTE_USER@$REMOTE_HOST" " cd $REMOTE_BASE && \ rm -f $PYTHON_FILE && \ rm -rf build __pycache__ *.spec # " echo "==> Setting up systemd service on remote..." ssh "$REMOTE_USER@$REMOTE_HOST" " echo '$SUDO_PASSWORD' | sudo -S cp '$REMOTE_BASE/ModbusTCP.service' /etc/systemd/system/" echo "==> Restarting systemd service on remote..." ssh "$REMOTE_USER@$REMOTE_HOST" " echo '$SUDO_PASSWORD' | sudo -S setcap 'cap_net_bind_service=+ep' '$REMOTE_BASE/dist/modbus_tcp_server' && \ echo '$SUDO_PASSWORD' | sudo -S systemctl daemon-reload && \ echo '$SUDO_PASSWORD' | sudo -S systemctl enable $SERVICE_NAME && \ echo '$SUDO_PASSWORD' | sudo -S systemctl stop $SERVICE_NAME && \ echo '$SUDO_PASSWORD' | sudo -S systemctl start $SERVICE_NAME && \ echo '$SUDO_PASSWORD' | sudo -S systemctl status $SERVICE_NAME --no-pager -l " echo "Deployment to $REMOTE_HOST completed successfully!"