# 云服务器部署指南(精简版) ## 问题:代码太大怎么办? **解决方案**: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) | | 部署复杂度 | 需要安装各种依赖 | 一键部署 | | 环境一致性 | 可能有差异 | 完全一致 | | 更新方式 | 重新上传代码 | 拉取新镜像 |