首页
/ SimStudioAI生产环境Docker Compose部署指南

SimStudioAI生产环境Docker Compose部署指南

2025-07-09 01:24:17作者:谭伦延

项目概述

SimStudioAI是一个基于现代Web技术栈构建的AI应用平台,通过Docker容器化技术实现快速部署和扩展。本文主要解析其生产环境下的Docker Compose配置文件,帮助开发者理解系统架构和部署要点。

核心服务架构

该生产环境配置包含四个主要服务组件:

  1. simstudio - 主应用服务
  2. realtime - 实时通信服务
  3. migrations - 数据库迁移服务
  4. db - PostgreSQL数据库服务

详细服务配置解析

1. 主应用服务(simstudio)

simstudio:
  image: ghcr.io/simstudioai/simstudio:latest
  restart: unless-stopped
  ports:
    - '3000:3000'
  deploy:
    resources:
      limits:
        memory: 8G
  • 使用最新版镜像,确保自动重启
  • 暴露3000端口供外部访问
  • 内存限制为8GB,适合处理AI相关计算任务

关键环境变量配置:

  • 数据库连接:使用PostgreSQL,通过环境变量注入连接信息
  • 认证相关:包括认证URL、密钥等安全配置
  • 第三方服务集成:Google/GitHub OAuth、邮件服务API等
  • AI服务集成:OLLAMA(本地AI模型服务)和实时Socket服务配置

2. 实时通信服务(realtime)

realtime:
  image: ghcr.io/simstudioai/realtime:latest
  ports:
    - '3002:3002'
  deploy:
    resources:
      limits:
        memory: 4G
  • 专用于处理实时通信功能
  • 独立部署,减轻主服务压力
  • 4GB内存限制,适合WebSocket等实时通信场景

3. 数据库迁移服务(migrations)

migrations:
  image: ghcr.io/simstudioai/migrations:latest
  command: ['bun', 'run', 'db:migrate']
  restart: 'no'
  • 使用Bun运行时执行数据库迁移
  • 一次性任务,完成后不重启
  • 确保数据库结构与应用版本匹配

4. 数据库服务(db)

db:
  image: pgvector/pgvector:pg17
  ports:
    - '5432:5432'
  volumes:
    - postgres_data:/var/lib/postgresql/data
  • 使用pgvector扩展的PostgreSQL 17
  • 数据持久化通过volume实现
  • 包含健康检查确保服务可用性

部署最佳实践

  1. 环境变量管理

    • 所有敏感信息应通过环境变量注入
    • 生产环境必须替换所有placeholder值
    • 建议使用.env文件或CI/CD系统管理
  2. 资源分配

    • 根据实际负载调整内存限制
    • 主服务8GB内存适合中等规模AI任务
    • 实时服务4GB内存可支持数千并发连接
  3. 健康检查

    • 各服务配置了完善的健康检查机制
    • 确保服务完全启动后才开始依赖调用
    • 自动恢复机制提高系统稳定性
  4. 数据持久化

    • PostgreSQL数据存储在命名volume中
    • 确保容器重启后数据不丢失
    • 生产环境应考虑定期备份策略

安全注意事项

  1. 必须配置所有认证相关密钥:

    • BETTER_AUTH_SECRET
    • ENCRYPTION_KEY
    • 各OAuth服务的client secret
  2. 数据库凭证不应使用默认值:

    • 修改POSTGRES_USERPOSTGRES_PASSWORD
    • 考虑使用秘密管理服务
  3. API密钥保护:

    • FREESTYLE_API_KEYRESEND_API_KEY
    • 最小权限原则分配密钥权限

扩展建议

  1. 负载均衡

    • 可横向扩展realtime服务
    • 配合负载均衡器实现高可用
  2. 监控集成

    • 添加Prometheus和Grafana监控
    • 跟踪服务性能和资源使用
  3. 日志管理

    • 配置集中式日志收集
    • 便于问题排查和审计

通过这份Docker Compose配置,SimStudioAI实现了微服务架构的清晰划分,各组件职责明确,既保证了功能完整性,又为性能扩展留出了空间。生产部署时应根据实际业务需求和安全要求进行适当调整。