SimStudioAI生产环境Docker Compose部署指南
2025-07-09 01:24:17作者:谭伦延
项目概述
SimStudioAI是一个基于现代Web技术栈构建的AI应用平台,通过Docker容器化技术实现快速部署和扩展。本文主要解析其生产环境下的Docker Compose配置文件,帮助开发者理解系统架构和部署要点。
核心服务架构
该生产环境配置包含四个主要服务组件:
- simstudio - 主应用服务
- realtime - 实时通信服务
- migrations - 数据库迁移服务
- 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实现
- 包含健康检查确保服务可用性
部署最佳实践
-
环境变量管理:
- 所有敏感信息应通过环境变量注入
- 生产环境必须替换所有placeholder值
- 建议使用.env文件或CI/CD系统管理
-
资源分配:
- 根据实际负载调整内存限制
- 主服务8GB内存适合中等规模AI任务
- 实时服务4GB内存可支持数千并发连接
-
健康检查:
- 各服务配置了完善的健康检查机制
- 确保服务完全启动后才开始依赖调用
- 自动恢复机制提高系统稳定性
-
数据持久化:
- PostgreSQL数据存储在命名volume中
- 确保容器重启后数据不丢失
- 生产环境应考虑定期备份策略
安全注意事项
-
必须配置所有认证相关密钥:
BETTER_AUTH_SECRET
ENCRYPTION_KEY
- 各OAuth服务的client secret
-
数据库凭证不应使用默认值:
- 修改
POSTGRES_USER
和POSTGRES_PASSWORD
- 考虑使用秘密管理服务
- 修改
-
API密钥保护:
- 如
FREESTYLE_API_KEY
和RESEND_API_KEY
- 最小权限原则分配密钥权限
- 如
扩展建议
-
负载均衡:
- 可横向扩展realtime服务
- 配合负载均衡器实现高可用
-
监控集成:
- 添加Prometheus和Grafana监控
- 跟踪服务性能和资源使用
-
日志管理:
- 配置集中式日志收集
- 便于问题排查和审计
通过这份Docker Compose配置,SimStudioAI实现了微服务架构的清晰划分,各组件职责明确,既保证了功能完整性,又为性能扩展留出了空间。生产部署时应根据实际业务需求和安全要求进行适当调整。