#!/bin/bash # NAC资产一键上链系统部署脚本 # 部署到备份服务器:103.96.148.7 set -e echo "=========================================" echo "NAC资产一键上链系统部署脚本" echo "=========================================" # 配置变量 REMOTE_HOST="103.96.148.7" REMOTE_PORT="22000" REMOTE_USER="root" REMOTE_PASSWORD="XKUigTFMJXhH" DEPLOY_DIR="/opt/nac-onboarding-system" SERVICE_NAME="nac-onboarding" # 1. 编译Rust后端 echo "[1/8] 编译Rust后端..." cd /home/ubuntu/NAC_Clean_Dev/nac-onboarding-system cargo build --release # 2. 打包前端文件 echo "[2/8] 打包前端文件..." cd frontend npm install npm run build cd .. # 3. 创建部署包 echo "[3/8] 创建部署包..." mkdir -p dist cp target/release/nac-onboarding-system dist/ cp -r static dist/ cp -r frontend/build dist/frontend cp database/init.sql dist/ cp .env.example dist/.env cp deploy/nac-onboarding.service dist/ cp deploy/nginx.conf dist/ # 4. 上传到备份服务器 echo "[4/8] 上传到备份服务器..." sshpass -p "$REMOTE_PASSWORD" scp -P $REMOTE_PORT -r dist/* $REMOTE_USER@$REMOTE_HOST:$DEPLOY_DIR/ # 5. 初始化数据库 echo "[5/8] 初始化数据库..." sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF' mysql -u root -p < /opt/nac-onboarding-system/init.sql EOF # 6. 配置systemd服务 echo "[6/8] 配置systemd服务..." sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF' cp /opt/nac-onboarding-system/nac-onboarding.service /etc/systemd/system/ systemctl daemon-reload systemctl enable nac-onboarding systemctl restart nac-onboarding EOF # 7. 配置nginx echo "[7/8] 配置nginx..." sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF' cp /opt/nac-onboarding-system/nginx.conf /etc/nginx/sites-available/nac-onboarding ln -sf /etc/nginx/sites-available/nac-onboarding /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx EOF # 8. 验证部署 echo "[8/8] 验证部署..." sshpass -p "$REMOTE_PASSWORD" ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST << 'EOF' systemctl status nac-onboarding curl -I https://onboarding.newassetchain.io EOF echo "=========================================" echo "部署完成!" echo "访问地址:https://onboarding.newassetchain.io" echo "========================================="