🐳 快速启动

使用 Docker Compose 一键部署完整环境:

bash
# 克隆仓库
git clone https://github.com/fujiwarachoki/moneyprinter.git
cd moneyprinter

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件

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

# 查看日志
docker-compose logs -f

访问 http://localhost:3000 使用 Web 界面。

📄 docker-compose.yml

yaml
version: '3.8'

services:
  # 后端 API
  backend:
    build: .
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgresql://postgres:password@postgres:5432/moneyprinter
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - postgres
      - ollama
    volumes:
      - ./videos:/app/videos

  # 前端界面
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    depends_on:
      - backend

  # PostgreSQL 数据库
  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: moneyprinter
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  # Redis 缓存
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

  # Ollama LLM 服务
  ollama:
    image: ollama/ollama:latest
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama

volumes:
  postgres_data:
  ollama_data:

🔧 服务配置

后端服务

bash
# 重新构建后端镜像
docker-compose build backend

# 重启后端服务
docker-compose restart backend

# 查看后端日志
docker-compose logs -f backend

Ollama 服务

bash
# 进入 Ollama 容器
docker-compose exec ollama bash

# 拉取模型
ollama pull llama3.1:8b

# 查看已安装模型
ollama list

🚀 生产环境部署

使用 Nginx 反向代理

nginx
server {
    listen 80;
    server_name your-domain.com;

    # 前端
    location / {
        proxy_pass http://frontend:3000;
        proxy_set_header Host $host;
    }

    # API
    location /api {
        proxy_pass http://backend:8000;
        proxy_set_header Host $host;
    }

    # WebSocket
    location /ws {
        proxy_pass http://backend:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

环境变量(生产)

.env
# 生产环境配置
DEBUG=false
LOG_LEVEL=INFO

# 安全配置
SECRET_KEY=your_secret_key_here
ALLOWED_HOSTS=your-domain.com

# 数据库
DATABASE_URL=postgresql://user:password@postgres:5432/moneyprinter

# Redis
REDIS_URL=redis://redis:6379

📊 资源限制

为容器设置资源限制,防止占用过多资源:

yaml
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
        reservations:
          cpus: '1'
          memory: 2G

  ollama:
    deploy:
      resources:
        limits:
          memory: 16G  # LLM 需要大量内存

🔄 数据备份

bash
# 备份 PostgreSQL 数据库
docker-compose exec postgres pg_dump -U postgres moneyprinter > backup.sql

# 备份视频文件
tar -czvf videos_backup.tar.gz ./videos

# 备份 Ollama 模型
docker-compose exec ollama ollama pull llama3.1:8b
# 模型存储在 ollama_data 卷中