SVCG 开发者文档SVCG 开发者文档
首页
快速开始
  • 前端开发
  • 后端开发
  • API 文档
部署运维
更新日志
GitHub
首页
快速开始
  • 前端开发
  • 后端开发
  • API 文档
部署运维
更新日志
GitHub
  • 部署运维

    • 部署运维
    • Docker 部署指南
    • 生产环境配置
    • 监控和日志

部署指南

系统要求

硬件要求

  • CPU: 2核及以上
  • 内存: 4GB+(推荐8GB)
  • 存储: 10GB+(用于数据库和知识库)
  • 网络: 稳定的互联网连接(用于Deepseek API调用)

软件要求

  • Go 1.18+ (后端)
  • Node.js 16+ (前端)
  • Docker & Docker Compose (容器化部署,可选)
  • SQLite 3+ (数据库)

部署架构

┌──────────────────────────────────────────────────────────┐
│                    Docker Compose                        │
├──────────────────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────────────────┐ │
│  │  Frontend (Vue.js)                                  │ │
│  │  - nginx或内置HTTP服务器                            │ │
│  │  - 监听端口3000                                     │ │
│  └──────────────────────────────────────────────────────┘ │
│                                                           │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  Backend (Go + Echo)                                │ │
│  │  - REST API服务器                                   │ │
│  │  - 监听端口7777                                     │ │
│  │  - SQLite数据库                                     │ │
│  └──────────────────────────────────────────────────────┘ │
│                                                           │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  n8n工作流引擎                                       │ │
│  │  - AI处理节点                                       │ │
│  │  - 监听端口5678                                     │ │
│  └──────────────────────────────────────────────────────┘ │
│                                                           │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  Redis (可选,用于高性能缓存)                        │ │
│  │  - 监听端口6379                                     │ │
│  └──────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘

本地开发部署

1. 克隆仓库

git clone https://github.com/luoli0706/SeventhCenturyVideoGroup.git
cd SeventhCenturyVideoGroup

2. 后端部署

2.1 配置环境变量

cd backend/go-echo-sqlite
cp .env.example .env

# 编辑.env文件,填入Deepseek API密钥
vim .env

.env文件内容:

DEEPSEEK_API_KEY=sk-your-api-key-here
DEEPSEEK_EMBEDDING_MODEL=deepseek-chat
DEEPSEEK_API_BASE=https://api.deepseek.com
RAG_EMBEDDING_DIMENSION=1024
RAG_TOP_K=5

2.2 安装依赖

go mod tidy

2.3 启动后端服务

go run main.go

成功启动后,会显示:

✓ 成功加载.env文件: .env
✓ Deepseek API密钥已配置 (前缀: sk-...)
✓ RAG系统初始化完成
【诊断】文档总数: 2
【诊断】文档块总数: 53

⇨ http server started on [::]:7777

3. 前端部署

3.1 安装依赖

cd frontend
npm install

3.2 开发模式启动

npm run dev

访问 http://localhost:5173 (Vite默认端口)

3.3 生产构建

npm run build

Docker容器化部署

1. 准备Docker环境

# 检查Docker是否已安装
docker --version
docker-compose --version

2. 配置docker-compose.yml

已优化的docker-compose.yml配置:

version: '3.8'

services:
  redis:
    image: redis:7.2-alpine
    container_name: n8n_redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    command: redis-server --appendonly yes

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    depends_on:
      - redis
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=admin123
      - DB_TYPE=sqlite
      - QUEUE_BULL_REDIS_HOST=redis
      - QUEUE_BULL_REDIS_PORT=6379
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - TZ=Asia/Shanghai
    volumes:
      - n8n_data:/home/node/.n8n
      - ./n8n-local-files:/files

volumes:
  redis_data:
    driver: local
  n8n_data:
    driver: local

3. 启动容器

# 启动所有服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

Kubernetes部署(高级)

1. 创建命名空间

kubectl create namespace scvg

2. 部署后端

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
  namespace: scvg
spec:
  replicas: 2
  selector:
    matchLabels:
      app: backend
  template:
    metadata:
      labels:
        app: backend
    spec:
      containers:
      - name: backend
        image: scvg-backend:latest
        ports:
        - containerPort: 7777
        env:
        - name: DEEPSEEK_API_KEY
          valueFrom:
            secretKeyRef:
              name: deepseek-secret
              key: api-key
        resources:
          requests:
            memory: "512Mi"
            cpu: "250m"
          limits:
            memory: "1Gi"
            cpu: "500m"

3. 创建Service

apiVersion: v1
kind: Service
metadata:
  name: backend-service
  namespace: scvg
spec:
  type: LoadBalancer
  ports:
  - port: 7777
    targetPort: 7777
  selector:
    app: backend

生产环境配置

1. 数据库备份

# 每天定时备份数据库
0 2 * * * cp /path/to/app.db /path/to/backup/app.db.$(date +%Y%m%d)

2. 日志管理

配置日志输出到文件:

# 启动时重定向日志
go run main.go > /var/log/scvg-backend.log 2>&1 &

3. SSL/TLS配置

使用nginx反向代理配置HTTPS:

server {
    listen 443 ssl;
    server_name api.7thcv.cn;

    ssl_certificate /etc/ssl/certs/api.7thcv.cn.crt;
    ssl_certificate_key /etc/ssl/private/api.7thcv.cn.key;

    location / {
        proxy_pass http://localhost:7777;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

4. 性能优化

4.1 启用缓存

// 在main.go中配置缓存中间件
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
    AllowOrigins: []string{"*"},
}))

4.2 限流配置

e.Use(middleware.RateLimiter(middleware.NewRateLimiterConfig().
    Store: middleware.NewRateLimiterMemoryStore(100)))

4.3 数据库连接池

// 在config/database.go中配置
db.DB().SetMaxIdleConns(10)
db.DB().SetMaxOpenConns(100)

故障恢复

1. 数据库损坏恢复

# 使用备份还原
rm app.db
cp app.db.backup app.db

# 重启服务
systemctl restart scvg-backend

2. 知识库恢复

# 使用备份还原
rm -rf backend/AI-data-source/
cp -r backend/AI-data-source.backup/ backend/AI-data-source/

# 触发热更新
curl -X POST http://localhost:7777/api/rag/refresh

3. 容器异常处理

# 查看容器状态
docker-compose ps

# 重启容器
docker-compose restart backend

# 查看容器日志
docker-compose logs -f backend

监控和告警

1. 系统监控

# 使用Prometheus + Grafana
docker run -d -p 9090:9090 prom/prometheus

# 配置后端暴露Prometheus metrics

2. 健康检查

# 手动检查服务健康状态
curl http://localhost:7777/api/rag/status

3. 日志聚合

# 使用ELK Stack收集日志
docker-compose -f docker-compose.elk.yml up -d

性能基准

指标基准值优化目标
API响应时间50-100ms<50ms
数据库查询10-20ms<10ms
向量计算20-30ms<20ms
并发连接数100+1000+

升级指南

升级后端

cd backend/go-echo-sqlite
git pull origin main
go mod tidy
go build -o scvg main.go

# 备份旧版本
mv scvg scvg.bak

# 启动新版本
./scvg

升级前端

cd frontend
git pull origin main
npm install
npm run build

# 备份旧版本
mv dist dist.bak

# 部署新版本
npm run serve

常见问题

Q: 如何修改服务端口?

A: 编辑main.go中的端口号,默认为7777。

Q: 如何启用HTTPS?

A: 使用nginx或Apache做反向代理,配置SSL证书。

Q: 支持多节点部署吗?

A: 可以,使用负载均衡器(如Nginx)分发请求。

Q: 如何扩展存储容量?

A: 知识库存储在SQLite,可迁移到PostgreSQL或MySQL获得更好的可扩展性。

总结

按照本指南的步骤,可以快速部署系统到开发、测试和生产环境。建议先在本地开发环境测试,然后逐步部署到生产环境。

在 GitHub 上编辑此页
上次更新: 2025/10/16 11:45
贡献者: NingBye