deploy.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. # 设置错误时退出
  3. set -e
  4. # 配置变量
  5. PROJECT_NAME="tweb-api"
  6. PROJECT_DIR="/var/www/$PROJECT_NAME"
  7. username="wuyi"
  8. password="hXE8ZjQ^Q46V7n"
  9. GIT_REPO="https://git.izouma.com/wuyi/tweb-api.git"
  10. GIT_REPO_WITH_AUTH="https://${username}:${password}@git.izouma.com/wuyi/tweb-api.git"
  11. echo "🚀 开始部署 $PROJECT_NAME..."
  12. # 进入项目目录
  13. cd "$PROJECT_DIR"
  14. # 设置 Git 远程仓库 URL(包含认证信息)
  15. echo "🔧 配置 Git 远程仓库..."
  16. git remote set-url origin "$GIT_REPO_WITH_AUTH"
  17. # Git 拉取最新代码
  18. echo "📥 拉取最新代码..."
  19. git pull origin main
  20. # 安装依赖
  21. echo "📦 安装依赖..."
  22. yarn install
  23. # 构建项目
  24. echo "🔨 构建项目..."
  25. yarn build
  26. # 复制配置文件
  27. echo "📋 复制配置文件..."
  28. cp .env.production dist/.env
  29. cp package.json dist/package.json
  30. # 检查 PM2 应用是否存在,如果不存在则创建新的
  31. if pm2 list | grep -q "tweb-api"; then
  32. echo "🔄 重启现有的 PM2 应用..."
  33. pm2 restart tweb-api
  34. else
  35. echo "🚀 创建新的 PM2 应用..."
  36. pm2 start dist/server.js --name tweb-api
  37. fi
  38. echo "✅ 部署完成!"
  39. pm2 status