deploy.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/bash
  2. set -e
  3. # === 配置区 ===
  4. SERVER_HOST="18.180.15.67"
  5. REMOTE_USER="ubuntu"
  6. PEM_PATH="$HOME/Downloads/Key/id_tgseo3.pem"
  7. REMOTE_PATH="/var/www/tg-download-page"
  8. LOCAL_PATH="./dist"
  9. # === 步骤1:本地构建 ===
  10. echo "=============================="
  11. echo "1. 开始构建项目..."
  12. yarn install
  13. rm -rf $LOCAL_PATH
  14. yarn build
  15. echo "✅ 构建完成"
  16. echo "=============================="
  17. # === 步骤2:远程准备目录和权限 ===
  18. echo "2. 检查并准备远程目录和权限..."
  19. ssh -i $PEM_PATH -o StrictHostKeyChecking=no $REMOTE_USER@$SERVER_HOST "\
  20. sudo mkdir -p $REMOTE_PATH && \\
  21. sudo chown -R $REMOTE_USER:$REMOTE_USER $REMOTE_PATH\
  22. "
  23. echo "✅ 远程目录准备完成"
  24. echo "=============================="
  25. # === 步骤3:同步文件 ===
  26. echo "3. 同步文件到服务器..."
  27. rsync --exclude='node_modules/' -ravzh --delete -e "ssh -i $PEM_PATH -o StrictHostKeyChecking=no" \
  28. $LOCAL_PATH/ $REMOTE_USER@$SERVER_HOST:$REMOTE_PATH/
  29. echo "✅ 文件同步完成!"
  30. echo "=============================="
  31. # === 步骤4:重启 Nginx 服务 ===
  32. echo "4. 重启远程 Nginx 服务..."
  33. ssh -i $PEM_PATH -o StrictHostKeyChecking=no $REMOTE_USER@$SERVER_HOST "sudo systemctl restart nginx"
  34. echo "✅ Nginx 已重启"
  35. echo "=============================="