| 1 | #!/bin/bash |
| 2 | set -euo pipefail |
| 3 | |
| 4 | # Deploy openhub — upload binary and restart service |
| 5 | # Usage: deploy/deploy.sh [host] [port] |
| 6 | |
| 7 | HOST="${1:-213.111.152.198}" |
| 8 | PORT="${2:-2200}" |
| 9 | USER="god" |
| 10 | SSH="ssh -p ${PORT} ${USER}@${HOST}" |
| 11 | SCP="scp -P ${PORT}" |
| 12 | |
| 13 | echo "Fetching latest build artifact from GitHub Actions..." |
| 14 | gh run download --name openhub-linux-x86_64 --dir /tmp/openhub-deploy |
| 15 | |
| 16 | echo "Uploading binary to ${HOST}..." |
| 17 | $SCP /tmp/openhub-deploy/openhub ${USER}@${HOST}:/tmp/openhub-new |
| 18 | |
| 19 | echo "Installing and restarting..." |
| 20 | $SSH 'bash -s' <<'REMOTE' |
| 21 | set -euo pipefail |
| 22 | sudo systemctl stop openhub |
| 23 | sudo install -m 755 /tmp/openhub-new /usr/local/bin/openhub |
| 24 | sudo setcap cap_net_bind_service=+ep /usr/local/bin/openhub |
| 25 | sudo systemctl start openhub |
| 26 | rm /tmp/openhub-new |
| 27 | sleep 2 |
| 28 | sudo systemctl is-active --quiet openhub && echo "Deploy OK" || { echo "FAILED"; sudo journalctl -u openhub -n 10 --no-pager; exit 1; } |
| 29 | REMOTE |
| 30 | |
| 31 | rm -rf /tmp/openhub-deploy |