NAC_Blockchain/_archive/nac-onboarding-system-legacy/deploy/deploy.sh

81 lines
2.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 "========================================="