lovart3/手动迁移步骤.md
Your Name e9ceedb3bf feat: 添加图片变清晰功能
- 创建 /api/enhance 路由,实现图片变清晰API集成
- 在图片标注组件中添加变清晰按钮(Sparkles图标)
- 在相册页面添加变清晰按钮
- 系统设置:将抠图设置改名为本地AI设置,添加变清晰API配置
- 支持同步和异步两种模式
- 自动上传到S3存储桶并保存到数据库
- 在相册和出图记录中显示处理后的图片
2025-12-29 00:33:12 +08:00

240 lines
5.6 KiB
Markdown
Raw Permalink 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.

# 服务器迁移手动步骤指南
由于新服务器 (114.66.31.51) 目前无法通过SSH连接,请按照以下步骤进行迁移:
## 前置条件检查
### 1. 检查新服务器SSH配置
在新服务器的控制台或通过其他方式登录后,运行:
```bash
# 上传并运行检查脚本
chmod +x check-server-ssh.sh
./check-server-ssh.sh
```
### 2. 配置服务器允许SSH连接
#### 如果使用云服务器(阿里云/腾讯云等):
1. 登录云控制台
2. 找到安全组设置
3. 添加入站规则:
- 协议:TCP
- 端口:22
- 源:0.0.0.0/0(或你的IP地址)
- 动作:允许
#### 如果服务器有防火墙:
```bash
# Ubuntu/Debian (UFW)
sudo ufw allow 22/tcp
sudo ufw reload
# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
# 或使用iptables
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables-save
```
#### 确保SSH服务运行:
```bash
# 检查SSH服务状态
sudo systemctl status sshd # 或 systemctl status ssh
# 如果未运行,启动服务
sudo systemctl start sshd
sudo systemctl enable sshd
```
## 迁移步骤
### 步骤1: 准备备份文件
备份文件已保存在本地:
- 数据库备份:`./migration-backup-20251227_102258/database.dump` (624MB)
- 项目文件:`./migration-backup-20251227_102258/project.tar.gz` (11MB)
- 环境变量:`./migration-backup-20251227_102258/.env.local`
### 步骤2: 在新服务器上初始化环境
一旦SSH连接成功,运行迁移脚本:
```bash
# 在本地执行
cd /Users/lanmu/Desktop/ai-chatbot-main
./migrate-server.sh
```
或者手动执行以下步骤:
#### 2.1 在新服务器上安装必要软件
```bash
# 更新系统
apt-get update
# 安装基础工具
apt-get install -y curl wget git build-essential postgresql-client postgresql nginx
# 安装Node.js 20.x
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
# 安装PM2和pnpm
npm install -g pm2 pnpm
```
#### 2.2 创建数据库
```bash
# 启动PostgreSQL
systemctl start postgresql
systemctl enable postgresql
# 创建数据库和用户
sudo -u postgres psql << 'EOF'
CREATE DATABASE ai_chatbot;
CREATE USER chatbot_user WITH PASSWORD 'your_secure_password_here';
GRANT ALL PRIVILEGES ON DATABASE ai_chatbot TO chatbot_user;
ALTER DATABASE ai_chatbot OWNER TO chatbot_user;
\q
EOF
```
#### 2.3 上传备份文件
```bash
# 在本地执行,上传备份文件到新服务器
cd /Users/lanmu/Desktop/ai-chatbot-main
scp -P 22 ./migration-backup-20251227_102258/database.dump root@114.66.31.51:/tmp/
scp -P 22 ./migration-backup-20251227_102258/project.tar.gz root@114.66.31.51:/tmp/
scp -P 22 ./migration-backup-20251227_102258/.env.local root@114.66.31.51:/tmp/
```
#### 2.4 在新服务器上解压和配置
```bash
# 在新服务器上执行
mkdir -p /var/www/ai-chatbot
cd /var/www/ai-chatbot
tar -xzf /tmp/project.tar.gz
# 配置环境变量
cp /tmp/.env.local .env.local
# 编辑 .env.local,更新数据库连接信息
nano .env.local
# 修改 POSTGRES_URL 为新服务器的数据库连接
# POSTGRES_URL=postgresql://chatbot_user:your_secure_password_here@localhost:5432/ai_chatbot
# AUTH_URL=http://114.66.31.51
```
#### 2.5 导入数据库
```bash
# 在新服务器上执行
export PGPASSWORD="your_secure_password_here"
pg_restore -h localhost -p 5432 -U chatbot_user -d ai_chatbot -c --no-owner --no-privileges /tmp/database.dump
```
#### 2.6 安装依赖和构建
```bash
# 在新服务器上执行
cd /var/www/ai-chatbot
pnpm install --frozen-lockfile
pnpm db:migrate
pnpm build
```
#### 2.7 配置PM2
```bash
# 在新服务器上执行
cd /var/www/ai-chatbot
cat > ecosystem.config.js << 'EOF'
module.exports = {
apps: [{
name: 'ai-chatbot',
script: 'node_modules/next/dist/bin/next',
args: 'start',
cwd: '/var/www/ai-chatbot',
instances: 1,
exec_mode: 'fork',
env: {
NODE_ENV: 'production',
PORT: 3000
},
error_file: '/var/log/pm2/ai-chatbot-error.log',
out_file: '/var/log/pm2/ai-chatbot-out.log',
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
merge_logs: true,
autorestart: true,
max_memory_restart: '1G'
}]
};
EOF
pm2 start ecosystem.config.js
pm2 save
pm2 startup
```
#### 2.8 配置Nginx
```bash
# 在新服务器上执行
cat > /etc/nginx/sites-available/ai-chatbot << 'EOF'
server {
listen 80;
server_name 114.66.31.51;
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;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
}
EOF
ln -sf /etc/nginx/sites-available/ai-chatbot /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
```
## 验证迁移
1. 检查PM2状态:`pm2 status`
2. 检查日志:`pm2 logs ai-chatbot`
3. 访问网站:http://114.66.31.51
4. 测试登录和基本功能
## 注意事项
1. **数据库密码**:请使用强密码替换 `your_secure_password_here`
2. **环境变量**:检查 `.env.local` 中的所有配置是否正确
3. **防火墙**:确保开放80和443端口(如果使用HTTPS)
4. **域名**:如果使用域名,更新 `AUTH_URL` 和Nginx配置
## 如果SSH连接成功
直接运行自动化迁移脚本:
```bash
./migrate-server.sh
```
脚本会自动完成所有步骤。