feat: ship native boss android console
This commit is contained in:
53
scripts/deploy-server.sh
Executable file
53
scripts/deploy-server.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/zsh
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
REMOTE_USER="${BOSS_SERVER_USER:-ubuntu}"
|
||||
REMOTE_HOSTNAME="${BOSS_SERVER_HOST:-106.53.170.158}"
|
||||
REMOTE_HOST="${BOSS_REMOTE_HOST:-${REMOTE_USER}@${REMOTE_HOSTNAME}}"
|
||||
REMOTE_DIR="${BOSS_REMOTE_DIR:-/opt/boss}"
|
||||
SSH_OPTS="-o StrictHostKeyChecking=no"
|
||||
KEYCHAIN_SERVICE="${BOSS_KEYCHAIN_SERVICE:-boss-server-debug-ssh}"
|
||||
|
||||
resolve_password() {
|
||||
if [[ -n "${BOSS_SERVER_PASS:-}" ]]; then
|
||||
printf '%s' "${BOSS_SERVER_PASS}"
|
||||
return 0
|
||||
fi
|
||||
if command -v security >/dev/null 2>&1; then
|
||||
local keychain_pass=""
|
||||
keychain_pass="$(security find-generic-password -a "${REMOTE_USER}" -s "${KEYCHAIN_SERVICE}" -w 2>/dev/null || true)"
|
||||
if [[ -n "${keychain_pass}" ]]; then
|
||||
printf '%s' "${keychain_pass}"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
PASSWORD="$(resolve_password || true)"
|
||||
|
||||
if [[ -n "${PASSWORD}" ]]; then
|
||||
export SSHPASS="${PASSWORD}"
|
||||
RSYNC_RSH="sshpass -e ssh ${SSH_OPTS}"
|
||||
SSH_PREFIX=(sshpass -e ssh ${=SSH_OPTS})
|
||||
else
|
||||
RSYNC_RSH="ssh ${SSH_OPTS}"
|
||||
SSH_PREFIX=(ssh ${=SSH_OPTS})
|
||||
fi
|
||||
|
||||
BOSS_RUNTIME_ROOT="$ROOT_DIR" BOSS_STATE_FILE="$ROOT_DIR/data/boss-state.json" npm run build
|
||||
|
||||
"${SSH_PREFIX[@]}" "$REMOTE_HOST" "sudo mkdir -p $REMOTE_DIR && sudo chown -R ${REMOTE_USER}:${REMOTE_USER} $REMOTE_DIR && sudo rm -rf $REMOTE_DIR/.next"
|
||||
|
||||
rsync -az --delete \
|
||||
--exclude ".git" \
|
||||
--exclude "node_modules" \
|
||||
--exclude "data/" \
|
||||
--exclude ".DS_Store" \
|
||||
-e "$RSYNC_RSH" \
|
||||
"$ROOT_DIR/" "$REMOTE_HOST:$REMOTE_DIR/"
|
||||
|
||||
"${SSH_PREFIX[@]}" "$REMOTE_HOST" "sudo bash $REMOTE_DIR/scripts/bootstrap-server.sh"
|
||||
"${SSH_PREFIX[@]}" "$REMOTE_HOST" "sudo chown -R ${REMOTE_USER}:${REMOTE_USER} $REMOTE_DIR"
|
||||
"${SSH_PREFIX[@]}" "$REMOTE_HOST" "cd $REMOTE_DIR && npm install --omit=dev && sudo systemctl restart boss-web && sudo systemctl restart caddy && sleep 2 && curl -fsS http://127.0.0.1:3000/api/health"
|
||||
Reference in New Issue
Block a user