auto-deploy-demo/deploy/DEPLOY_GUIDE.md

199 lines
3.5 KiB
Markdown
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.

# 服务器部署指南
## 服务器信息
- **IP地址**: 49.232.209.156
- **用户名**: ai-auto
- **密码**: ashai@X1an
- **域名**: ashai.com.cn
## 部署步骤
### 第一步SSH连接服务器
在本地终端执行:
```bash
ssh ai-auto@49.232.209.156
# 密码: ashai@X1an
```
### 第二步安装Node.js环境
```bash
# 安装Node.js 18.x
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
# 验证安装
node -v
npm -v
```
### 第三步安装PM2进程管理器
```bash
sudo npm install -g pm2
pm2 -v
```
### 第四步:创建项目目录
```bash
mkdir -p /home/ai-auto/auto-deploy-demo
cd /home/ai-auto/auto-deploy-demo
```
### 第五步:上传项目文件
在**本地电脑**新开一个终端,执行以下命令上传文件:
```bash
# 进入项目目录
cd f:\develop\TraeProject\auto-deploy-demo
# 上传server目录
scp -r server ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/
# 上传projects目录
scp -r projects ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/
# 上传client/dist目录
scp -r client/dist ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/client/
# 上传配置文件
scp package.json package-lock.json .env ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/
```
### 第六步:安装项目依赖
回到**服务器终端**
```bash
cd /home/ai-auto/auto-deploy-demo
npm install --production
```
### 第七步:配置防火墙
```bash
# 开放主服务端口
sudo firewall-cmd --permanent --add-port=8888/tcp
# 开放项目端口范围
sudo firewall-cmd --permanent --add-port=9000-9100/tcp
# 重载防火墙
sudo firewall-cmd --reload
# 查看开放的端口
sudo firewall-cmd --list-ports
```
### 第八步:启动服务
```bash
cd /home/ai-auto/auto-deploy-demo
# 启动服务
pm2 start server/index.js --name "auto-deploy-demo"
# 保存PM2配置
pm2 save
# 设置开机自启动
pm2 startup
# 执行输出的命令需要sudo权限
```
### 第九步:验证部署
```bash
# 查看服务状态
pm2 status
# 查看日志
pm2 logs auto-deploy-demo
# 测试API
curl http://localhost:8888
```
## 访问地址
- **主系统**: http://ashai.com.cn:8888 或 http://49.232.209.156:8888
- **默认账号**: admin
- **默认密码**: admin123
## 常用命令
```bash
# 查看服务状态
pm2 status
# 查看日志
pm2 logs auto-deploy-demo
# 重启服务
pm2 restart auto-deploy-demo
# 停止服务
pm2 stop auto-deploy-demo
# 重新部署(更新代码后)
cd /home/ai-auto/auto-deploy-demo
pm2 restart auto-deploy-demo
```
## 域名配置
确保域名 `ashai.com.cn` 已解析到服务器IP `49.232.209.156`
### DNS解析配置
- **记录类型**: A记录
- **主机记录**: @
- **记录值**: 49.232.209.156
## 故障排查
### 1. 无法访问服务
```bash
# 检查服务是否运行
pm2 status
# 检查端口是否监听
netstat -tlnp | grep 8888
# 检查防火墙
sudo firewall-cmd --list-ports
```
### 2. 端口被占用
```bash
# 查看端口占用
netstat -tlnp | grep 8888
# 杀死占用进程
kill -9 <PID>
```
### 3. 查看错误日志
```bash
pm2 logs auto-deploy-demo --lines 100
```
### 4. 重启服务器后服务未自动启动
```bash
pm2 resurrect
```
## 更新部署
当需要更新代码时:
```bash
# 1. 在本地上传新文件
scp -r server ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/
scp -r client/dist ai-auto@49.232.209.156:/home/ai-auto/auto-deploy-demo/client/
# 2. 在服务器重启服务
pm2 restart auto-deploy-demo
```