Despliegue auto-alojado
Ejecuta Mnemom Gateway en tu propia infraestructura para un control completo de la residencia de datos. El contenido de los prompts y respuestas nunca se envía a la nube de Mnemom, aunque los prompts se reenvían a los proveedores de LLM que configures — consulta Residencia de datos para ver los límites exactos del tráfico. La pasarela auto-alojada es un adaptador Node.js que ejecuta el mismo código que el servicio gestionado de Cloudflare Workers — comportamiento idéntico, tu infraestructura.El despliegue auto-alojado requiere una licencia Enterprise. Contáctanos para obtener una clave de licencia. Enterprise incluye el modo de análisis híbrido, integración SSO/SAML y soporte dedicado.
Opciones de despliegue
| Gestionado (Cloud) | Docker Compose | Kubernetes (Helm) | |
|---|---|---|---|
| Ideal para | La mayoría de los equipos | Equipos pequeños, eval, dev | Producción a escala |
| Infraestructura | Ninguna (Mnemom aloja) | VM o servidor único | Clúster K8s |
| Tiempo de configuración | Minutos | ~10 minutos | ~30 minutos |
| Escalado | Automático | Manual | Auto-escalado HPA |
| Residencia de datos | Nube de Mnemom | Tu infraestructura | Tu infraestructura |
| Alta disponibilidad | Integrada | Nodo único | Multi-réplica, PDB |
| Monitoreo | Panel de control | Prometheus + logs | Prometheus + ServiceMonitor |
Requisitos previos
- Un JWT de licencia Enterprise desde mnemom.ai/dashboard
- Una clave API de Anthropic (requerida para el análisis de integridad AIP)
- Opcional: claves API de OpenAI y Gemini para el rastreo multi-proveedor
Inicio rápido: Docker Compose
La forma más rápida de poner en marcha una pasarela auto-alojada. Incluye PostgreSQL, Redis y migraciones de base de datos automáticas.Requisitos
- Docker 24+ y Docker Compose v2+
- 2 GB de RAM mínimo, 4 GB recomendados
- 10 GB de espacio en disco
Configurar el entorno
Copia el archivo de entorno de ejemplo y completa tus credenciales:Edita
.env y establece los valores requeridos:Si tu
.env.example muestra SMOLTBOT_ROLE, cámbiale el nombre a MNEMOM_ROLE — el archivo tiene un nombre de marca obsoleto, pero el punto de entrada lee MNEMOM_ROLE.Iniciar la stack
- PostgreSQL — base de datos con comprobación de salud
- Redis — capa de caché con persistencia
- Gateway — proxy HTTP en el puerto 8787 (aplica migraciones de base de datos al iniciar)
- Observer — planificador en segundo plano para el procesamiento de trazas
Verificar la salud
Espera unos 30 segundos, luego comprueba la salud de la pasarela:
Expected response
Producción: Kubernetes con Helm
Para despliegues en producción con auto-escalado, alta disponibilidad y monitoreo.Requisitos
- Kubernetes 1.27+
- Helm 3.12+
kubectlconfigurado para tu clúster
Qué despliega el chart
- Despliegue Gateway (2 réplicas por defecto) — proxy HTTP con sondas de liveness, readiness y startup
- Despliegue Observer (1 réplica) — planificador en segundo plano para el procesamiento de trazas
- Job de migración — hook de Helm pre-install/pre-upgrade que aplica las migraciones de base de datos
- Service — ClusterIP en el puerto 8787
- NetworkPolicy — deny-all por defecto con permisos explícitos para ingress, Redis, PostgreSQL y las API LLM ascendentes
- PodDisruptionBudget — garantiza al menos 1 réplica durante las actualizaciones progresivas
- Opcional: Ingress con TLS, HPA, ServiceMonitor para Prometheus
Escalado
Habilita el HorizontalPodAutoscaler para el escalado automático:Arquitectura
En modo auto-alojado, una capa de adaptador Node.js reemplaza las API específicas de Cloudflare mientras ejecuta exactamente el mismo código de pasarela:| API de Cloudflare | Reemplazo auto-alojado |
|---|---|
| KV Namespace | Redis (con repliegue en memoria) |
ctx.waitUntil() | Recolección de Promise con drenaje tras la respuesta |
| Enrutamiento de URL de AI Gateway | Interceptor fetch que reescribe hacia las API ascendentes |
ExecutionContext | Shim de Node.js con semántica fire-and-forget |
Residencia de datos
El contenido de los prompts y respuestas nunca se envía a la nube de Mnemom. Sin embargo, los prompts se reenvían a los proveedores de LLM que configures — consulta la tabla siguiente para ver los límites exactos del tráfico.| Tráfico | Destino | Cómo mantenerlo en tu región |
|---|---|---|
| Llamadas a proveedores LLM | APIs de Anthropic / OpenAI / Gemini (puerto 443) | Enruta a través de un proxy de API con VPC peering o usa el endpoint regional del proveedor |
| Heartbeat | https://api.mnemom.ai/v1/deployments/heartbeat | Define HEARTBEAT_URL con un endpoint interno o relay regional |
| Creación de agentes (s2s) | https://api.mnemom.ai/v1/agents (solo envía agent_hash + prefijo de clave API — sin contenido de prompt) | Contacta a [email protected] para opciones air-gapped |
Referencia de configuración
Requerido
| Variable | Descripción |
|---|---|
SUPABASE_URL | URL del proyecto Supabase (https://<ref>.supabase.co) o endpoint PostgREST auto-alojado |
SUPABASE_SECRET_KEY | Clave de rol de servicio de Supabase |
SUPABASE_JWT_SECRET | Secreto JWT para verificar tokens de autenticación de Supabase (el observer falla sin esto) |
REDIS_PASSWORD | Contraseña para la instancia de Redis (requerida cuando se usa Redis) |
INTERNAL_API_KEY | Secreto interno de servicio a servicio para las llamadas de creación de agentes |
MNEMOM_LICENSE_JWT | JWT de licencia Enterprise desde mnemom.ai/dashboard |
ANTHROPIC_API_KEY | Clave API de Anthropic (requerida para el análisis AIP) |
Opcional: proveedores
| Variable | Predeterminado | Descripción |
|---|---|---|
OPENAI_API_KEY | — | Clave API de OpenAI para el enrutamiento multi-proveedor |
GEMINI_API_KEY | — | Clave API de Google Gemini para el enrutamiento multi-proveedor |
Opcional: análisis híbrido
| Variable | Predeterminado | Descripción |
|---|---|---|
MNEMOM_ANALYZE_URL | — | Delega el análisis AIP a la nube de Mnemom (https://api.mnemom.ai/v1/analyze) |
MNEMOM_API_KEY | — | Clave API de Mnemom con el ámbito analyze (requerida cuando MNEMOM_ANALYZE_URL está definido) |
Opcional: infraestructura
| Variable | Predeterminado | Descripción |
|---|---|---|
REDIS_URL | — | URL de conexión de Redis. Sin Redis, se usa un adaptador KV en memoria (solo un nodo). |
PORT | 8787 | Puerto de escucha HTTP |
HOST | 0.0.0.0 | Dirección de enlace HTTP |
MNEMOM_ROLE | all | gateway (solo HTTP), scheduler (solo cron) o all (ambos) |
LOG_LEVEL | info | debug, info, warn o error. JSON estructurado a stdout. |
HEARTBEAT_URL | https://api.mnemom.ai/v1/deployments/heartbeat | Anula el endpoint de heartbeat. Configúralo como un endpoint interno para despliegues en la UE o air-gapped. |
Endpoints de salud
Tres sondas estándar de Kubernetes:| Endpoint | Propósito | Comportamiento |
|---|---|---|
/health/live | Sonda de liveness | Siempre 200 salvo bloqueo |
/health/ready | Sonda de readiness | Comprueba Redis, PostgreSQL y la validez de la licencia |
/health/startup | Sonda de startup | Devuelve 503 hasta que la inicialización se complete |
Métricas de Prometheus
La pasarela expone un endpoint/metrics con:
gateway_requests_total{provider,status}— contador de solicitudesgateway_request_duration_seconds{provider}— histograma de latenciagateway_aip_checks_total{verdict}— contador de comprobaciones de integridadgateway_cache_operations_total{operation,result}— hit/miss de caché- Métricas estándar
process_*ynodejs_*
values.yaml:
Actualización
Docker Compose
Helm
Resolución de problemas
La pasarela no arranca — EnvValidationError
La pasarela no arranca — EnvValidationError
Falta una variable de entorno requerida. Revisa el mensaje de error para saber cuál, luego verifica tu archivo
.env o tu Secret de Kubernetes.Conexión a Redis rechazada
Conexión a Redis rechazada
- Docker Compose: asegúrate de que el servicio
redisesté sano (docker compose ps) - Kubernetes: verifica que
REDIS_URLen tu Secret apunte a una instancia de Redis accesible - Sin Redis, la pasarela recurre al KV en memoria (solo un nodo)
Falló la validación de la licencia
Falló la validación de la licencia
- Verifica que
MNEMOM_LICENSE_JWTesté definido y no haya expirado - Comprueba
/health/readypara el error de licencia específico - Contacta a [email protected] para la reemisión de la licencia
Errores de API LLM ascendente (401/403)
Errores de API LLM ascendente (401/403)
- Verifica que tus claves API sean correctas y tengan créditos suficientes
- La pasarela hace proxy directamente a las API de los proveedores — asegúrate de que el HTTPS saliente (puerto 443) esté permitido
- En Kubernetes, comprueba que la NetworkPolicy permita el egress hacia
0.0.0.0/0:443
Memoria alta / OOMKilled
Memoria alta / OOMKilled
- Aumenta los límites de memoria del contenedor (512Mi mínimo, 1Gi recomendado para tráfico alto)
- Si usas el KV en memoria, cambia a Redis para reducir la presión de memoria
- Define
NODE_OPTIONS=--max-old-space-size=768para un control fino del heap
Próximos pasos
- Descripción general de Mnemom Gateway — arquitectura y componentes
- Modos de aplicación — observe, nudge y enforce
- Guía de observabilidad — paneles y alertas
- Modelo de seguridad — límites de confianza y modelo de amenaza