# mem0 自托管部署 ## 镜像 ``` ccr.ccs.tencentyun.com/tei_agent/mem0:latest ``` ## 依赖服务(tei namespace) | 服务 | 地址 | 用途 | |---|---|---| | PostgreSQL | 192.168.3.49:5432 | 关系数据存储 | | Qdrant | qdrant:6333 | 向量存储 | | TEI (BGE-M3) | tei:8080 | Embedder(文本→向量) | ## 环境变量 ### ConfigMap (mem0-env) | 变量 | 值 | 说明 | |---|---|---| | DATABASE_URL | postgres://gitlab:gitlab@192.168.3.49:5432/mem0 | 连接字串 | | APP_DB_NAME | mem0_app | 数据库名 | | QDRANT_HOST | qdrant | Qdrant 服务地址 | | QDRANT_PORT | 6333 | Qdrant 端口 | | QDRANT_COLLECTION_NAME | mem0 | 集合名 | | EMBEDDER_PROVIDER | tei | Embedder 使用 TEI | | TEI_ENDPOINT | http://tei:8080 | TEI endpoint | | LLM_PROVIDER | openai | LLM provider(MiniMax 兼容 OpenAI 格式) | | OPENAI_API_KEY | YOUR_MINIMAX_KEY | MiniMax API key | | OPENAI_BASE_URL | https://api.minimax.chat/v1 | MiniMax API 地址 | | AUTH_DISABLED | false | 启用认证 | | MEM0_TELEMETRY | false | 关闭遥测 | | REQUEST_LOG_RETENTION_DAYS | 30 | 日志保留天数 | ### Secret (mem0-secrets) | 变量 | 说明 | |---|---| | JWT_SECRET | JWT 签名密钥 | | ADMIN_API_KEY | 管理后台 API key | | POSTGRES_PASSWORD | PostgreSQL 密码 | ## 部署清单 ```yaml apiVersion: v1 kind: ConfigMap metadata: name: mem0-env namespace: tei data: DATABASE_URL: "postgres://gitlab:gitlab@192.168.3.49:5432/mem0" APP_DB_NAME: "mem0_app" QDRANT_HOST: "qdrant" QDRANT_PORT: "6333" QDRANT_COLLECTION_NAME: "mem0" EMBEDDER_PROVIDER: "tei" TEI_ENDPOINT: "http://tei:8080" LLM_PROVIDER: "openai" OPENAI_API_KEY: "YOUR_MINIMAX_KEY" OPENAI_BASE_URL: "https://api.minimax.chat/v1" AUTH_DISABLED: "false" MEM0_TELEMETRY: "false" REQUEST_LOG_RETENTION_DAYS: "30" --- apiVersion: v1 kind: Secret metadata: name: mem0-secrets namespace: tei type: Opaque stringData: JWT_SECRET: "your-jwt-secret-change-me" ADMIN_API_KEY: "your-admin-key-change-me" POSTGRES_PASSWORD: "gitlab" --- apiVersion: apps/v1 kind: Deployment metadata: name: mem0 namespace: tei spec: replicas: 1 selector: matchLabels: app: mem0 template: metadata: labels: app: mem0 spec: containers: - name: mem0 image: ccr.ccs.tencentyun.com/tei_agent/mem0:latest ports: - containerPort: 8000 name: http envFrom: - configMapRef: name: mem0-env - secretRef: name: mem0-secrets livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 10 periodSeconds: 5 resources: limits: cpu: "2" memory: "4Gi" requests: cpu: "500m" memory: "1Gi" --- apiVersion: v1 kind: Service metadata: name: mem0 namespace: tei spec: ports: - port: 8000 name: http selector: app: mem0 ``` ## 前置要求 1. **pgvector 扩展** — PostgreSQL 需要安装 pgvector 2. **mem0_app 数据库** — 需要提前创建 3. **Qdrant collection** — mem0 启动时自动创建(首次调用时) ## 验证 ```bash kubectl get pods -n tei -l app=mem0 kubectl logs -n tei -l app=mem0 --tail=50 # 健康检查 curl http://mem0:8000/health ```