| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/usr/bin/env bash
- set -euo pipefail
- # One-command deploy script:
- # 1) Build production bundle locally
- # 2) Upload archive to server
- # 3) Extract into target directory and fix ownership
- SERVER_HOST="47.83.117.213"
- SERVER_USER="root"
- SERVER_PASSWORD='Bkr!Srv#Mt5@Xoh_9KpL2'
- REMOTE_ARCHIVE="/tmp/manager-service-font-dist.tar.gz"
- REMOTE_DIR="/usr/local/golden/manager-service/font"
- LOCAL_ARCHIVE="dist.tar.gz"
- if ! command -v expect >/dev/null 2>&1; then
- echo "Error: expect is required but not installed."
- exit 1
- fi
- echo "==> Installing dependencies"
- npm install
- echo "==> Building production bundle"
- # Pin production API origin (Vite does not override env vars already set).
- export VITE_API_BASE="https://ad.jinclab.com"
- npm run build
- echo "==> Packaging dist/"
- COPYFILE_DISABLE=1 tar -czf "${LOCAL_ARCHIVE}" dist
- echo "==> Uploading package to server"
- expect <<EOF
- set timeout 180
- spawn scp -o StrictHostKeyChecking=no "${LOCAL_ARCHIVE}" "${SERVER_USER}@${SERVER_HOST}:${REMOTE_ARCHIVE}"
- expect {
- -re "yes/no" { send "yes\r"; exp_continue }
- -re "password:" { send "${SERVER_PASSWORD}\r" }
- }
- expect eof
- EOF
- echo "==> Deploying on remote server"
- expect <<EOF
- set timeout 180
- spawn ssh -o StrictHostKeyChecking=no "${SERVER_USER}@${SERVER_HOST}" "mkdir -p ${REMOTE_DIR} && rm -rf ${REMOTE_DIR}/* && tar -xzf ${REMOTE_ARCHIVE} -C ${REMOTE_DIR} --strip-components=1 && rm -f ${REMOTE_DIR}/._* ${REMOTE_DIR}/assets/._* && chown -R root:root ${REMOTE_DIR}"
- expect {
- -re "yes/no" { send "yes\r"; exp_continue }
- -re "password:" { send "${SERVER_PASSWORD}\r" }
- }
- expect eof
- EOF
- echo "==> Verifying remote files"
- expect <<EOF
- set timeout 60
- spawn ssh -o StrictHostKeyChecking=no "${SERVER_USER}@${SERVER_HOST}" "ls -lah ${REMOTE_DIR}"
- expect {
- -re "yes/no" { send "yes\r"; exp_continue }
- -re "password:" { send "${SERVER_PASSWORD}\r" }
- }
- expect eof
- EOF
- echo "Deployment completed: ${REMOTE_DIR}"
|