Files
smart-customer-service/DEPLOYMENT.md
Ubuntu c68ea3b600 feat: 智能客服系统基础架构完成
 已完成功能:
1. 项目基础设施和Docker开发环境
2. 前端React 18 + TypeScript架构
3. 后端Golang + Gin框架
4. 多租户数据库设计
5. 完整API路由系统
6. 智能客服聊天界面
7. 详细文档和部署指南

🔧 技术栈:
- 前端:React 18, TypeScript, Vite, Zustand
- 后端:Golang, Gin, GORM, PostgreSQL
- 部署:Docker, Docker Compose

🎨 设计规范:
- 无渐变色,无紫色
- 简洁专业的中性色系
- 响应式布局

📊 状态:
- 前端开发服务器:http://localhost:5173
- 后端API服务:http://localhost:8080
- 数据库:PostgreSQL + Redis
- 完整的多租户架构

作者:小弟 (大哥的AI助手)
日期:2026-02-27
2026-02-27 17:00:15 +08:00

313 lines
5.8 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.
# 智能客服系统 - 部署指南
## 🚀 快速部署
### 前提条件
- Docker 20.10+
- Docker Compose 2.0+
- Node.js 18+ (仅开发需要)
- Go 1.21+ (仅开发需要)
### 一键启动
```bash
# 克隆项目
git clone https://giter.top/openclaw/smart-customer-service.git
cd smart-customer-service
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
### 访问地址
- **前端应用**: http://localhost:3000
- **后端API**: http://localhost:8080
- **数据库管理**: http://localhost:8082 (Adminer)
- **WebSocket**: ws://localhost:8081
## 📦 服务说明
### 1. 数据库服务 (PostgreSQL)
- 端口: 5432
- 数据库: customer_service
- 用户名: postgres
- 密码: postgres
- 数据卷: postgres_data
### 2. 缓存服务 (Redis)
- 端口: 6379
- 数据卷: redis_data
### 3. 后端服务 (Golang)
- API端口: 8080
- WebSocket端口: 8081
- 环境变量: 见 `.env.example`
### 4. 前端服务 (React)
- 端口: 3000
- 构建工具: Vite
## 🔧 环境配置
### 后端环境变量
创建 `.env` 文件:
```bash
# 服务器配置
SERVER_PORT=8080
SERVER_MODE=debug
# 数据库配置
DB_HOST=postgres
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=customer_service
DB_SSL_MODE=disable
# Redis配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
# JWT配置
JWT_SECRET=your-secret-key-change-in-production
JWT_EXPIRATION=86400
# AI配置
AI_PROVIDER=openai
AI_API_KEY=your-openai-api-key
AI_MODEL=gpt-3.5-turbo
AI_BASE_URL=https://api.openai.com/v1
AI_MAX_TOKENS=1000
AI_TEMPERATURE=0.7
# WebSocket配置
WS_PORT=8081
WS_PATH=/ws
```
### 前端环境变量
创建 `frontend/.env` 文件:
```bash
VITE_API_URL=http://localhost:8080
VITE_WS_URL=ws://localhost:8081
```
## 🐳 Docker 构建
### 生产环境构建
```bash
# 构建所有镜像
docker-compose -f docker-compose.prod.yml build
# 启动生产环境
docker-compose -f docker-compose.prod.yml up -d
```
### 开发环境构建
```bash
# 使用开发配置
docker-compose build
# 启动开发环境(热重载)
docker-compose up
```
## 📊 数据库管理
### 初始化数据库
```bash
# 进入数据库容器
docker-compose exec postgres psql -U postgres -d customer_service
# 运行迁移脚本
docker-compose exec postgres psql -U postgres -d customer_service -f /docker-entrypoint-initdb.d/001_init_schema.sql
```
### 备份数据库
```bash
# 备份
docker-compose exec postgres pg_dump -U postgres customer_service > backup_$(date +%Y%m%d).sql
# 恢复
docker-compose exec -T postgres psql -U postgres -d customer_service < backup.sql
```
## 🔐 安全配置
### 1. 修改默认密码
```bash
# 修改数据库密码
docker-compose exec postgres psql -U postgres -c "ALTER USER postgres WITH PASSWORD 'new-strong-password';"
# 更新环境变量
sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=new-strong-password/' .env
```
### 2. 生成JWT密钥
```bash
# 生成随机密钥
openssl rand -base64 32
# 更新环境变量
sed -i 's/JWT_SECRET=.*/JWT_SECRET=generated-secret-key/' .env
```
### 3. 启用HTTPS
```nginx
# nginx配置示例
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://frontend:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /api {
proxy_pass http://backend:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /ws {
proxy_pass http://backend:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
```
## 📈 监控和日志
### 查看日志
```bash
# 查看所有服务日志
docker-compose logs
# 实时查看后端日志
docker-compose logs -f backend
# 查看特定时间段的日志
docker-compose logs --since 1h backend
```
### 健康检查
```bash
# API健康检查
curl http://localhost:8080/health
# 数据库健康检查
docker-compose exec postgres pg_isready -U postgres
# Redis健康检查
docker-compose exec redis redis-cli ping
```
## 🔄 更新和升级
### 更新代码
```bash
# 拉取最新代码
git pull origin main
# 重新构建服务
docker-compose build
# 重启服务
docker-compose up -d
```
### 数据库迁移
```bash
# 创建新的迁移文件
cat > backend/migrations/002_new_feature.sql << 'EOF'
-- 新功能迁移脚本
ALTER TABLE users ADD COLUMN new_column VARCHAR(100);
EOF
# 应用迁移
docker-compose exec postgres psql -U postgres -d customer_service -f /docker-entrypoint-initdb.d/002_new_feature.sql
```
## 🚨 故障排除
### 常见问题
#### 1. 端口冲突
```bash
# 检查端口占用
sudo lsof -i :3000
sudo lsof -i :8080
# 修改docker-compose.yml中的端口映射
```
#### 2. 数据库连接失败
```bash
# 检查数据库服务状态
docker-compose ps postgres
# 检查数据库日志
docker-compose logs postgres
# 手动测试连接
docker-compose exec postgres psql -U postgres -c "\l"
```
#### 3. 内存不足
```bash
# 查看容器资源使用
docker stats
# 限制容器内存
# 在docker-compose.yml中添加
# services:
# backend:
# mem_limit: 512m
```
#### 4. 构建失败
```bash
# 清理Docker缓存
docker system prune -a
# 重新构建
docker-compose build --no-cache
```
## 📞 支持
### 获取帮助
- **GitHub Issues**: https://giter.top/openclaw/smart-customer-service/issues
- **文档**: 查看项目根目录的README.md和PROJECT_PLAN.md
### 紧急恢复
```bash
# 停止所有服务
docker-compose down
# 删除所有数据(谨慎操作!)
docker-compose down -v
# 重新启动
docker-compose up -d
```
---
**最后更新**: 2026-02-27
**维护者**: 小弟 (大哥的AI助手)
**仓库**: https://giter.top/openclaw/smart-customer-service