Files
plates-server/DEPLOY.md
2025-08-13 15:17:33 +08:00

4.5 KiB
Raw Blame History

部署说明

本项目提供了三个发布脚本用于部署到服务器:

脚本说明

1. deploy-optimized.sh - 优化版发布脚本 推荐

  • 只上传源代码,服务器端构建
  • 充分利用 start.sh 的逻辑
  • 传输文件少,部署速度快
  • 包含完整的错误处理和备份

2. deploy.sh - 完整版发布脚本

  • 本地构建后上传
  • 功能完整,包含错误处理、备份、日志等
  • 支持干运行模式和帮助信息
  • 自动清理临时文件

3. deploy-simple.sh - 简化版发布脚本

  • 简单直接,适合快速部署
  • 代码简洁,易于理解和修改

服务器配置

  • 服务器地址: 119.91.211.52
  • 用户: root可在脚本中修改
  • 部署目录: /usr/local/web/pilates-server

使用前准备

1. 配置SSH密钥认证

# 生成SSH密钥如果还没有
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 将公钥复制到服务器
ssh-copy-id root@119.91.211.52

2. 服务器环境要求

确保服务器上已安装:

  • Node.js (建议v18+)
  • yarn
  • pm2
  • rsync

3. 本地环境要求

确保本地已安装:

  • rsync
  • ssh

使用方法

方法一:使用优化版脚本(推荐)

# 直接部署
./deploy-optimized.sh

方法二:使用完整版脚本

# 查看帮助
./deploy.sh --help

# 模拟运行(不实际部署)
./deploy.sh --dry-run

# 正式部署
./deploy.sh

方法三:使用简化版脚本

# 直接部署
./deploy-simple.sh

部署流程

优化版部署流程(推荐)

  1. 测试连接

    • 验证SSH连接是否正常
  2. 停止服务

    • 停止现有PM2服务
  3. 备份部署

    • 自动备份现有部署
  4. 同步源码

    • 只上传源代码和配置文件
    • 排除 node_modules、dist、.git、.env 等敏感文件
  5. 服务器构建

    • 执行 start.sh 脚本
    • 自动安装依赖、构建项目、启动服务
  6. 验证部署

    • 检查PM2服务状态

传统部署流程

  1. 本地构建

    • 安装依赖 (yarn install)
    • 构建项目 (yarn build)
  2. 文件同步

    • 将构建后的文件同步到服务器
    • 排除不必要的文件node_modules、.git等
  3. 服务器操作

    • 停止现有服务
    • 备份现有部署
    • 执行 start.sh 启动服务
  4. 验证部署

    • 检查PM2服务状态
    • 显示常用管理命令

常用管理命令

# 查看服务状态
ssh root@119.91.211.52 'cd /usr/local/web/pilates-server && pm2 status'

# 查看日志
ssh root@119.91.211.52 'cd /usr/local/web/pilates-server && pm2 logs'

# 重启服务
ssh root@119.91.211.52 'cd /usr/local/web/pilates-server && pm2 restart ecosystem.config.js'

# 停止服务
ssh root@119.91.211.52 'cd /usr/local/web/pilates-server && pm2 stop ecosystem.config.js'

自定义配置

如需修改服务器配置,请编辑脚本文件中的以下变量:

SERVER_HOST="119.91.211.52"    # 服务器地址
SERVER_USER="root"             # SSH用户名
SERVER_PATH="/usr/local/web/pilates-server"  # 部署目录

故障排除

1. SSH连接失败

  • 检查服务器地址是否正确
  • 确认SSH密钥是否配置正确
  • 检查服务器是否可访问

2. 文件同步失败

  • 检查rsync是否安装
  • 确认网络连接正常
  • 检查服务器磁盘空间

3. 服务启动失败

  • 检查服务器上的Node.js版本
  • 确认pm2是否正确安装
  • 查看服务器上的错误日志

4. 权限问题

  • 确保对目标目录有写权限
  • 检查SSH用户的权限设置

注意事项

  1. 首次部署:确保服务器上的目标目录存在且有权限
  2. 环境变量
    • 本地的 .env 文件不会上传到服务器(出于安全考虑)
    • 需要在服务器上手动创建 .env 文件并配置相应的环境变量
    • 或者通过其他方式管理生产环境的环境变量
  3. 数据库:确保服务器上的数据库配置正确
  4. 防火墙确保服务器端口默认3000已开放
  5. 备份:重要数据建议定期备份

环境变量管理

发布脚本会自动忽略以下环境变量文件:

  • .env
  • .env.local
  • .env.*.local

首次部署后,请在服务器上手动创建环境变量文件:

# 登录服务器
ssh root@119.91.211.52

# 进入项目目录
cd /usr/local/web/pilates-server

# 创建生产环境配置文件
nano .env

# 或者从模板复制
cp .env.example .env  # 如果有模板文件