
AIri项目企业级容器化部署策略从单机到生产集群的完整指南【免费下载链接】airi Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-samas altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airiAIri是一个基于大型语言模型的虚拟AI角色项目致力于创建能够与用户互动、玩游戏、聊天的数字伴侣。该项目采用TypeScript、Vue.js和Node.js技术栈构建支持Web、macOS和Windows多平台部署。随着项目复杂度的增加如何将AIri从开发环境稳定部署到生产环境成为技术决策者面临的关键挑战。部署场景分析不同环境下的需求差异在开始部署前我们需要明确不同环境下的具体需求。AIri作为一个多组件系统包含前端界面、后端API、数据库等多个服务每个组件都有不同的部署要求。开发测试环境通常需要快速迭代和调试能力而生产环境则更关注稳定性、可扩展性和安全性。对于AIri这样的AI应用还需要考虑模型推理的资源消耗和实时交互的性能要求。基础部署方案Docker单机部署对于小型团队或个人用户Docker单机部署是最简单直接的方案。AIri项目已经提供了完整的Dockerfile位于apps/stage-web/Dockerfile和apps/server/Dockerfile中。前端Web应用部署前端应用采用多阶段构建策略确保生产环境的轻量化和安全性FROM node:24-trixie AS build-stage WORKDIR /app ARG VITE_ENABLE_POSTHOGfalse ENV VITE_ENABLE_POSTHOG${VITE_ENABLE_POSTHOG} RUN corepack enable COPY . . RUN --mounttypecache,idpnpm-store,target/root/.pnpm-store \ pnpm install --frozen-lockfile RUN pnpm -F proj-airi/stage-web run build \ pnpm -F proj-airi/docs run build:base \ mv ./docs/.vitepress/dist ./apps/stage-web/dist/docs \ pnpm -F proj-airi/stage-ui run story:build \ mv ./packages/stage-ui/.histoire/dist ./apps/stage-web/dist/ui FROM nginx:stable-alpine AS production-stage COPY --frombuild-stage /app/apps/stage-web/dist /usr/share/nginx/html EXPOSE 80 CMD [nginx, -g, daemon off;]关键配置要点使用pnpm作为包管理器支持工作区管理构建时包含文档和UI组件库最终镜像基于nginx体积小巧后端API服务部署后端服务需要数据库和缓存支持AIri提供了完整的docker-compose配置services: db: image: ghcr.io/tensorchord/vchord-postgres:pg18-v1.0.0 environment: - POSTGRES_DBpostgres - POSTGRES_USERpostgres - POSTGRES_PASSWORDexample-PAssw0rd-xHjDYR.b7N ports: - 5435:5432 volumes: - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql - db_data:/var/lib/postgresql redis: image: redis:7-alpine ports: - 6379:6379 volumes: - redis_data:/data api: build: context: ../.. dockerfile: apps/server/Dockerfile command: [pnpm, -F, proj-airi/server, run, server, api] depends_on: db: condition: service_healthy redis: condition: service_healthy ports: - 6112:3000服务依赖关系PostgreSQL数据库存储用户数据、账单信息和持久化状态Redis缓存处理缓存、键值存储、发布订阅和流处理API服务基于Hono框架提供HTTP和WebSocket端点进阶部署方案容器编排与集群管理当应用规模扩大或需要高可用性时单机部署就显得力不从心。这时需要考虑容器编排方案。Kubernetes部署架构设计在Kubernetes环境中部署AIri需要将各个组件拆分为独立的微服务。以下是一个推荐的架构设计核心组件拆分前端Web服务Deployment Service后端API服务Deployment ServicePostgreSQL数据库StatefulSet ServiceRedis缓存Deployment Service可选的监控组件Prometheus Grafana生产级资源配置建议根据AIri的资源需求建议为不同组件配置合适的资源限制# API服务资源配置示例 resources: requests: memory: 512Mi cpu: 250m limits: memory: 1Gi cpu: 500m # 数据库资源配置示例 resources: requests: memory: 2Gi cpu: 500m limits: memory: 4Gi cpu: 1000m资源分配策略API服务中等CPU和内存需求支持并发请求数据库较高内存需求确保查询性能Redis中等内存需求低CPU消耗监控与可观测性配置生产环境部署必须包含完善的监控体系。AIri项目内置了OpenTelemetry支持可以方便地集成到现有的监控系统中。OpenTelemetry配置AIri服务器端已经配置了OpenTelemetry导出器位于apps/server/otel/目录中。要启用完整的可观测性栈可以使用提供的docker-compose配置docker compose -f apps/server/docker-compose.otel.yml up -d监控指标分类应用指标请求延迟、错误率、吞吐量业务指标用户活跃度、AI交互次数基础设施指标CPU、内存、网络使用情况健康检查配置确保服务可用性的关键是为每个服务配置适当的健康检查healthcheck: test: [CMD-SHELL, curl -f http://localhost:3000/livez || exit 1] interval: 10s timeout: 5s retries: 5 start_period: 30s健康检查策略就绪探针检查服务是否准备好接收流量存活探针检查服务是否仍在运行启动探针给服务足够的启动时间安全最佳实践容器化部署的安全性是生产环境的关键考虑因素。安全上下文配置在Kubernetes中为Pod配置适当的安全上下文securityContext: runAsNonRoot: true runAsUser: 1000 allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault敏感信息管理使用Kubernetes Secret管理敏感配置# 创建数据库连接Secret kubectl create secret generic airi-db-secret \ --from-literalpostgres-passwordyour-secure-password \ --from-literalredis-passwordyour-redis-password # 创建API密钥Secret kubectl create secret generic airi-api-keys \ --from-literalopenai-api-keysk-... \ --from-literalanthropic-api-keysk-ant-...网络与存储配置网络策略限制服务间的网络访问实施最小权限原则apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: airi-api-policy spec: podSelector: matchLabels: app: airi-api policyTypes: - Ingress - Egress ingress: - from: - podSelector: matchLabels: app: airi-web ports: - protocol: TCP port: 3000 egress: - to: - podSelector: matchLabels: app: airi-db ports: - protocol: TCP port: 5432持久化存储为数据库和Redis配置持久化存储# PostgreSQL持久化卷声明 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgres-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: standard # Redis持久化配置 persistentVolumeClaim: enabled: true size: 20Gi storageClass: standard自动化部署与CI/CDGitHub Actions部署流水线建立自动化的部署流程确保代码变更能够快速安全地部署到生产环境name: Deploy AIRI to Production on: push: branches: [main] paths: - apps/** - packages/server-** jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Setup Node.js uses: actions/setup-nodev4 with: node-version: 24 - name: Install pnpm uses: pnpm/action-setupv4 - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build server run: pnpm -F proj-airi/server run build - name: Run tests run: pnpm -F proj-airi/server exec vitest run deploy: needs: build-and-test runs-on: ubuntu-latest if: github.ref refs/heads/main steps: - name: Deploy to Kubernetes uses: Azure/k8s-set-contextv3 with: method: kubeconfig kubeconfig: ${{ secrets.KUBE_CONFIG }} - name: Apply Kubernetes manifests run: | kubectl apply -f k8s/manifests/ kubectl rollout status deployment/airi-api故障排除与常见问题数据库连接问题症状API服务无法连接到PostgreSQL数据库解决方案检查数据库服务是否正常运行验证连接字符串配置检查网络策略是否允许连接查看数据库日志中的认证错误内存泄漏排查症状容器频繁重启内存使用持续增长解决方案启用内存分析工具检查是否有未释放的资源调整JVM或Node.js内存参数实施内存限制和监控性能优化建议数据库优化为常用查询创建索引定期执行VACUUM和ANALYZE配置合适的连接池大小缓存策略合理设置Redis缓存过期时间使用Redis集群分担负载实施缓存预热机制API优化启用响应压缩实施请求限流使用CDN加速静态资源扩展与定制化自定义AI模型集成AIri支持多种AI模型提供商可以通过环境变量配置# 配置OpenAI作为模型提供商 MODEL_PROVIDERopenai OPENAI_API_KEYsk-your-api-key OPENAI_BASE_URLhttps://api.openai.com/v1 # 配置Anthropic作为模型提供商 MODEL_PROVIDERanthropic ANTHROPIC_API_KEYsk-ant-your-api-key插件系统扩展AIri的插件系统允许开发者扩展功能。要添加自定义插件在plugins/目录下创建插件文件夹实现插件接口在配置中启用插件重新构建并部署应用总结与最佳实践AIri的容器化部署是一个系统工程需要综合考虑多个方面。以下是关键的最佳实践总结部署策略选择小型项目Docker Compose单机部署中型项目Kubernetes单集群部署大型项目多集群、多区域部署监控与告警实施完整的可观测性栈设置关键指标告警定期进行性能分析安全防护遵循最小权限原则定期更新基础镜像实施网络隔离策略备份与恢复定期备份数据库测试恢复流程制定灾难恢复计划通过遵循本文的部署指南技术团队可以建立稳定、可扩展且安全的AIri部署环境为用户提供高质量的AI虚拟角色体验。随着项目的发展持续优化部署架构和运维流程确保系统能够适应不断增长的业务需求。【免费下载链接】airi Self hosted, you-owned Grok Companion, a container of souls of waifu, cyber livings to bring them into our worlds, wishing to achieve Neuro-samas altitude. Capable of realtime voice chat, Minecraft, Factorio playing. Web / macOS / Windows supported.项目地址: https://gitcode.com/GitHub_Trending/ai/airi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考