4.5 KiB
4.5 KiB
部署说明
本项目提供了三个发布脚本用于部署到服务器:
脚本说明
1. deploy-optimized.sh - 优化版发布脚本 ⭐ 推荐
- 只上传源代码,服务器端构建
- 充分利用
start.sh的逻辑 - 传输文件少,部署速度快
- 包含完整的错误处理和备份
2. deploy.sh - 完整版发布脚本
- 本地构建后上传
- 功能完整,包含错误处理、备份、日志等
- 支持干运行模式和帮助信息
- 自动清理临时文件
3. deploy-simple.sh - 简化版发布脚本
- 简单直接,适合快速部署
- 代码简洁,易于理解和修改
服务器配置
- 服务器地址: 129.204.155.94
- 用户: root(可在脚本中修改)
- 部署目录: /usr/local/web/pilates-server
使用前准备
1. 配置SSH密钥认证
# 生成SSH密钥(如果还没有)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 将公钥复制到服务器
ssh-copy-id root@129.204.155.94
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
部署流程
优化版部署流程(推荐)
-
测试连接
- 验证SSH连接是否正常
-
停止服务
- 停止现有PM2服务
-
备份部署
- 自动备份现有部署
-
同步源码
- 只上传源代码和配置文件
- 排除 node_modules、dist、.git、.env 等敏感文件
-
服务器构建
- 执行
start.sh脚本 - 自动安装依赖、构建项目、启动服务
- 执行
-
验证部署
- 检查PM2服务状态
传统部署流程
-
本地构建
- 安装依赖 (
yarn install) - 构建项目 (
yarn build)
- 安装依赖 (
-
文件同步
- 将构建后的文件同步到服务器
- 排除不必要的文件(node_modules、.git等)
-
服务器操作
- 停止现有服务
- 备份现有部署
- 执行
start.sh启动服务
-
验证部署
- 检查PM2服务状态
- 显示常用管理命令
常用管理命令
# 查看服务状态
ssh root@129.204.155.94 'cd /usr/local/web/pilates-server && pm2 status'
# 查看日志
ssh root@129.204.155.94 'cd /usr/local/web/pilates-server && pm2 logs'
# 重启服务
ssh root@129.204.155.94 'cd /usr/local/web/pilates-server && pm2 restart ecosystem.config.js'
# 停止服务
ssh root@129.204.155.94 'cd /usr/local/web/pilates-server && pm2 stop ecosystem.config.js'
自定义配置
如需修改服务器配置,请编辑脚本文件中的以下变量:
SERVER_HOST="129.204.155.94" # 服务器地址
SERVER_USER="root" # SSH用户名
SERVER_PATH="/usr/local/web/pilates-server" # 部署目录
故障排除
1. SSH连接失败
- 检查服务器地址是否正确
- 确认SSH密钥是否配置正确
- 检查服务器是否可访问
2. 文件同步失败
- 检查rsync是否安装
- 确认网络连接正常
- 检查服务器磁盘空间
3. 服务启动失败
- 检查服务器上的Node.js版本
- 确认pm2是否正确安装
- 查看服务器上的错误日志
4. 权限问题
- 确保对目标目录有写权限
- 检查SSH用户的权限设置
注意事项
- 首次部署:确保服务器上的目标目录存在且有权限
- 环境变量:
- 本地的
.env文件不会上传到服务器(出于安全考虑) - 需要在服务器上手动创建
.env文件并配置相应的环境变量 - 或者通过其他方式管理生产环境的环境变量
- 本地的
- 数据库:确保服务器上的数据库配置正确
- 防火墙:确保服务器端口(默认3000)已开放
- 备份:重要数据建议定期备份
环境变量管理
发布脚本会自动忽略以下环境变量文件:
.env.env.local.env.*.local
首次部署后,请在服务器上手动创建环境变量文件:
# 登录服务器
ssh root@129.204.155.94
# 进入项目目录
cd /usr/local/web/pilates-server
# 创建生产环境配置文件
nano .env
# 或者从模板复制
cp .env.example .env # 如果有模板文件