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
This commit is contained in:
313
DEPLOYMENT.md
Normal file
313
DEPLOYMENT.md
Normal file
@@ -0,0 +1,313 @@
|
||||
# 智能客服系统 - 部署指南
|
||||
|
||||
## 🚀 快速部署
|
||||
|
||||
### 前提条件
|
||||
- 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
|
||||
Reference in New Issue
Block a user