202 lines
4.6 KiB
Markdown
202 lines
4.6 KiB
Markdown
|
|
# 云服务器部署指南(精简版)
|
|||
|
|
|
|||
|
|
## 问题:代码太大怎么办?
|
|||
|
|
|
|||
|
|
**解决方案**:Docker 镜像部署
|
|||
|
|
|
|||
|
|
- 本地构建好 Docker 镜像(包含所有代码)
|
|||
|
|
- 推送到 Docker Hub(免费)
|
|||
|
|
- 服务器只需要拉取镜像运行,**无需上传源码**
|
|||
|
|
|
|||
|
|
## 部署流程
|
|||
|
|
|
|||
|
|
### 第一步:本地构建并推送镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 登录 Docker Hub(没有账号先注册:https://hub.docker.com)
|
|||
|
|
docker login
|
|||
|
|
|
|||
|
|
# 2. 设置你的 Docker Hub 用户名
|
|||
|
|
export DOCKER_USERNAME=yourusername
|
|||
|
|
|
|||
|
|
# 3. 构建并推送镜像
|
|||
|
|
./build-and-push.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**镜像大小参考**:
|
|||
|
|
- API 镜像:约 500MB
|
|||
|
|
- Web 镜像:约 200MB
|
|||
|
|
- 前端镜像:约 50MB
|
|||
|
|
|
|||
|
|
### 第二步:服务器部署
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 登录服务器
|
|||
|
|
ssh user@your-server-ip
|
|||
|
|
|
|||
|
|
# 2. 创建目录
|
|||
|
|
mkdir -p /opt/baodanagent && cd /opt/baodanagent
|
|||
|
|
|
|||
|
|
# 3. 下载部署脚本(或从本地上传)
|
|||
|
|
# 方式一:从 Git 下载
|
|||
|
|
curl -sSL https://raw.githubusercontent.com/yourusername/baodanagent/main/server-deploy.sh -o server-deploy.sh
|
|||
|
|
|
|||
|
|
# 方式二:从本地上传(只需要这一个文件)
|
|||
|
|
scp server-deploy.sh user@your-server-ip:/opt/baodanagent/
|
|||
|
|
|
|||
|
|
# 4. 设置执行权限
|
|||
|
|
chmod +x server-deploy.sh
|
|||
|
|
|
|||
|
|
# 5. 运行部署脚本
|
|||
|
|
DOCKER_USERNAME=yourusername ./server-deploy.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 第三步:配置环境变量(可选)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 编辑 .env 文件
|
|||
|
|
nano .env
|
|||
|
|
|
|||
|
|
# 修改以下配置:
|
|||
|
|
DOCKER_USERNAME=yourusername # 必须修改
|
|||
|
|
POSTGRES_PASSWORD=your_password # 建议修改
|
|||
|
|
SECRET_KEY=your_secret_key # 建议修改
|
|||
|
|
ADMIN_PASSWORD=your_password # 建议修改
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 第四步:访问系统
|
|||
|
|
|
|||
|
|
| 服务 | 地址 |
|
|||
|
|
|------|------|
|
|||
|
|
| 管理后台 | http://your-server-ip:3000 |
|
|||
|
|
| API 服务 | http://your-server-ip:5001 |
|
|||
|
|
| 默认账号 | taiyi@baodan.com / taiyi1224 |
|
|||
|
|
|
|||
|
|
## 文件清单
|
|||
|
|
|
|||
|
|
### 本地需要的文件(构建镜像时)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
baodanagent/
|
|||
|
|
├── Dockerfile.dify-custom # API 镜像构建文件
|
|||
|
|
├── Dockerfile.web-custom # Web 镜像构建文件
|
|||
|
|
├── Dockerfile.frontend # 前端镜像构建文件
|
|||
|
|
├── build-and-push.sh # 构建并推送脚本
|
|||
|
|
├── api/insurance/ # 自研代码
|
|||
|
|
├── scripts/ # 启动脚本
|
|||
|
|
├── deploy/ # 部署配置
|
|||
|
|
│ ├── sql/init.sql
|
|||
|
|
│ └── logo/
|
|||
|
|
└── frontend/ # 前端代码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 服务器需要的文件(部署时)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
/opt/baodanagent/
|
|||
|
|
├── server-deploy.sh # 部署脚本(唯一必需文件)
|
|||
|
|
├── docker-compose.yml # 自动生成
|
|||
|
|
├── .env # 自动生成
|
|||
|
|
└── deploy/sql/init.sql # 自动生成
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看服务状态
|
|||
|
|
docker compose ps
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
docker compose logs -f baodan-api
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
docker compose restart
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
docker compose down
|
|||
|
|
|
|||
|
|
# 更新镜像并重启
|
|||
|
|
docker compose pull && docker compose up -d
|
|||
|
|
|
|||
|
|
# 备份数据库
|
|||
|
|
docker compose exec db pg_dump -U postgres baodan > backup.sql
|
|||
|
|
|
|||
|
|
# 恢复数据库
|
|||
|
|
docker compose exec -T db psql -U postgres baodan < backup.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 更新部署
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 本地重新构建并推送镜像
|
|||
|
|
./build-and-push.sh
|
|||
|
|
|
|||
|
|
# 服务器拉取新镜像并重启
|
|||
|
|
docker compose pull
|
|||
|
|
docker compose up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 域名和 HTTPS 配置
|
|||
|
|
|
|||
|
|
如果需要配置域名和 HTTPS:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 安装 Nginx 和 Certbot
|
|||
|
|
apt install nginx certbot python3-certbot-nginx -y
|
|||
|
|
|
|||
|
|
# 配置 Nginx 反向代理
|
|||
|
|
cat > /etc/nginx/sites-available/baodanagent << 'EOF'
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name your-domain.com;
|
|||
|
|
|
|||
|
|
location / {
|
|||
|
|
proxy_pass http://127.0.0.1:3000;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
location /api/ {
|
|||
|
|
proxy_pass http://127.0.0.1:5001/;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 启用配置
|
|||
|
|
ln -s /etc/nginx/sites-available/baodanagent /etc/nginx/sites-enabled/
|
|||
|
|
nginx -t && systemctl reload nginx
|
|||
|
|
|
|||
|
|
# 申请 SSL 证书
|
|||
|
|
certbot --nginx -d your-domain.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 故障排查
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看容器日志
|
|||
|
|
docker compose logs baodan-api
|
|||
|
|
|
|||
|
|
# 进入容器调试
|
|||
|
|
docker compose exec baodan-api bash
|
|||
|
|
|
|||
|
|
# 检查数据库连接
|
|||
|
|
docker compose exec db psql -U postgres -d baodan
|
|||
|
|
|
|||
|
|
# 检查 Redis 连接
|
|||
|
|
docker compose exec redis redis-cli ping
|
|||
|
|
|
|||
|
|
# 重启所有服务
|
|||
|
|
docker compose down && docker compose up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 总结
|
|||
|
|
|
|||
|
|
| 对比项 | 传统部署 | Docker 镜像部署 |
|
|||
|
|
|--------|---------|----------------|
|
|||
|
|
| 上传内容 | 整个项目代码(数GB) | 只需一个脚本(几KB) |
|
|||
|
|
| 部署复杂度 | 需要安装各种依赖 | 一键部署 |
|
|||
|
|
| 环境一致性 | 可能有差异 | 完全一致 |
|
|||
|
|
| 更新方式 | 重新上传代码 | 拉取新镜像 |
|