182 lines
3.6 KiB
Markdown
182 lines
3.6 KiB
Markdown
# 快速部署指南
|
||
|
||
## 快速开始(5分钟部署)
|
||
|
||
### 步骤 1: 在服务器上初始化环境
|
||
|
||
```bash
|
||
# 连接到服务器
|
||
ssh -p 5204 root@156.225.27.52
|
||
|
||
# 上传并运行初始化脚本
|
||
# (在本地执行)
|
||
scp -P 5204 setup-server.sh root@156.225.27.52:/root/
|
||
ssh -p 5204 root@156.225.27.52 "bash /root/setup-server.sh"
|
||
```
|
||
|
||
### 步骤 2: 配置数据库
|
||
|
||
```bash
|
||
# 在服务器上执行
|
||
sudo -u postgres psql
|
||
```
|
||
|
||
在 PostgreSQL 中执行:
|
||
|
||
```sql
|
||
CREATE DATABASE ai_chatbot;
|
||
CREATE USER chatbot_user WITH PASSWORD '你的安全密码';
|
||
GRANT ALL PRIVILEGES ON DATABASE ai_chatbot TO chatbot_user;
|
||
\q
|
||
```
|
||
|
||
### 步骤 3: 上传项目并配置
|
||
|
||
```bash
|
||
# 在本地执行
|
||
# 1. 上传项目文件
|
||
scp -P 5204 -r . root@156.225.27.52:/var/www/ai-chatbot/
|
||
|
||
# 2. 连接到服务器
|
||
ssh -p 5204 root@156.225.27.52
|
||
|
||
# 3. 进入项目目录
|
||
cd /var/www/ai-chatbot
|
||
|
||
# 4. 创建环境变量文件
|
||
nano .env.local
|
||
```
|
||
|
||
在 `.env.local` 中添加:
|
||
|
||
```bash
|
||
POSTGRES_URL=postgresql://chatbot_user:你的密码@localhost:5432/ai_chatbot
|
||
AUTH_SECRET=$(openssl rand -base64 32)
|
||
AUTH_URL=http://156.225.27.52
|
||
```
|
||
|
||
保存文件(Ctrl+X, Y, Enter)
|
||
|
||
### 步骤 4: 安装和构建
|
||
|
||
```bash
|
||
# 在服务器上执行
|
||
cd /var/www/ai-chatbot
|
||
pnpm install
|
||
pnpm db:migrate
|
||
pnpm build
|
||
```
|
||
|
||
### 步骤 5: 启动应用
|
||
|
||
```bash
|
||
# 复制 PM2 配置文件
|
||
cp ecosystem.config.js /var/www/ai-chatbot/
|
||
|
||
# 启动应用
|
||
cd /var/www/ai-chatbot
|
||
pm2 start ecosystem.config.js
|
||
pm2 save
|
||
pm2 startup
|
||
```
|
||
|
||
### 步骤 6: 配置 Nginx
|
||
|
||
```bash
|
||
# 创建 Nginx 配置
|
||
cat > /etc/nginx/sites-available/ai-chatbot << 'EOF'
|
||
server {
|
||
listen 80;
|
||
server_name 156.225.27.52;
|
||
|
||
location / {
|
||
proxy_pass http://localhost:3000;
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Upgrade $http_upgrade;
|
||
proxy_set_header Connection 'upgrade';
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
proxy_cache_bypass $http_upgrade;
|
||
}
|
||
}
|
||
EOF
|
||
|
||
# 启用站点
|
||
ln -s /etc/nginx/sites-available/ai-chatbot /etc/nginx/sites-enabled/
|
||
nginx -t
|
||
systemctl restart nginx
|
||
```
|
||
|
||
### 步骤 7: 测试
|
||
|
||
访问 `http://156.225.27.52` 查看应用是否正常运行。
|
||
|
||
## 使用自动部署脚本
|
||
|
||
如果你想使用自动部署脚本:
|
||
|
||
```bash
|
||
# 在本地执行
|
||
./deploy.sh
|
||
```
|
||
|
||
**注意**: 使用自动部署脚本前,需要:
|
||
1. 在服务器上已经运行过 `setup-server.sh`
|
||
2. 已经配置好数据库和环境变量
|
||
3. 已经创建好 PM2 配置文件
|
||
|
||
## 常见问题
|
||
|
||
### 1. 连接服务器失败
|
||
|
||
检查:
|
||
- SSH 端口是否正确(5204)
|
||
- 服务器 IP 是否正确
|
||
- 防火墙是否允许 SSH 连接
|
||
|
||
### 2. 应用无法启动
|
||
|
||
检查:
|
||
```bash
|
||
pm2 logs ai-chatbot
|
||
pm2 status
|
||
```
|
||
|
||
### 3. 数据库连接失败
|
||
|
||
检查:
|
||
- `.env.local` 中的 `POSTGRES_URL` 是否正确
|
||
- PostgreSQL 服务是否运行:`systemctl status postgresql`
|
||
- 数据库用户权限是否正确
|
||
|
||
### 4. 502 Bad Gateway
|
||
|
||
检查:
|
||
- 应用是否运行:`pm2 status`
|
||
- Nginx 配置是否正确:`nginx -t`
|
||
- 端口 3000 是否被占用:`netstat -tulpn | grep 3000`
|
||
|
||
## 更新部署
|
||
|
||
```bash
|
||
# 在服务器上执行
|
||
cd /var/www/ai-chatbot
|
||
git pull # 如果使用 Git
|
||
# 或者重新上传文件
|
||
pnpm install
|
||
pnpm db:migrate
|
||
pnpm build
|
||
pm2 restart ai-chatbot
|
||
```
|
||
|
||
## 安全建议
|
||
|
||
1. **更改默认密码**:首次登录后立即更改 root 密码
|
||
2. **使用 SSH 密钥**:配置 SSH 密钥登录,禁用密码登录
|
||
3. **配置防火墙**:只开放必要的端口
|
||
4. **定期更新**:`apt update && apt upgrade -y`
|
||
5. **配置 SSL**:使用 Let's Encrypt 配置 HTTPS
|
||
|