Jan Server es una plataforma multiservicio y no una aplicación única, y sus requisitos lo reflejan. El README del proyecto fija el suelo en 8 GB de RAM como mínimo, 12 GB recomendados, lo que descarta los planes de 4 GB que dominan las comparativas de VPS baratos.
Lo que sigue desglosa esa cifra y muestra qué partes cambian según tu configuración.
En qué se va la memoria
Un despliegue por defecto arranca unos nueve contenedores. Ninguno es enorme por sí solo, pero suman:
- Microservicios en Go — la LLM API, la Response API, la Media API, las herramientas MCP y una plantilla de servicio
- PostgreSQL — persistencia de conversaciones y mensajes
- Keycloak — autenticación OIDC, ejecutándose desde
quay.io/keycloak/keycloak:24.0.5, y una aplicación JVM con un consumo de memoria real - Kong v3.5 — la puerta de enlace de API que valida cada petición
- Web chat UI — una app React en el puerto 3001
Keycloak y Postgres son los dos que hacen incómodos los 4 GB. En un servidor de 8 GB la pila corre con margen; por debajo de eso, los contenedores reciben un OOM-kill durante el arranque y el fallo parece un cuelgue aleatorio en vez de un problema de memoria.
La recomendación de 12 GB se aplica cuando activas todo, incluida la Media API y la pila opcional de observabilidad con OpenTelemetry, Prometheus, Jaeger y Grafana.
CPU
Los servicios en Go no están limitados por CPU. Pasan su tiempo esperando a la base de datos y al endpoint de modelo que hayas configurado, así que 4 vCPU va sobrado para toda la pila y 2 vCPU funciona para una instalación de un solo usuario.
Eso cambia por completo si ejecutas la inferencia en la misma máquina. El perfil de CPU de vLLM existe precisamente para eso, y usará cada núcleo que le des mientras produce tokens mucho más lento que una GPU. Trata la inferencia por CPU como una forma de verificar que el despliegue funciona, no como la configuración desde la que sirves a usuarios reales.
Disco
Calcula 40 GB como mínimo con inferencia remota. Tres cosas lo consumen:
- Imágenes de contenedor — varios gigabytes entre los servicios, Keycloak, Kong y Postgres
- Datos de PostgreSQL — crecen con el historial de conversaciones y mensajes
- Almacenamiento de media — solo si activas la Media API y guardas los archivos en local en vez de en S3
Los pesos de modelo en local son el comodín. El modelo por defecto para los perfiles de vLLM es janhq/Jan-v1-4B, que es modesto, pero un volumen de caché de modelos sigue siendo la forma más rápida de llenar un disco pequeño. Si la inferencia local entra de algún modo en tus planes, empieza en 100 GB.
GPU
Solo es necesaria para el perfil de GPU de vLLM, que reserva un dispositivo NVIDIA mediante el bloque deploy.resources de Compose y se niega a arrancar sin uno. Los planes de VPS estándar de los proveedores de abajo no incluyen GPU, así que las opciones prácticas son un endpoint remoto compatible con OpenAI, el perfil de CPU lento, o un host de GPU aparte al que Jan Server llame.
Planes de entrada de proveedores frente a estos requisitos
| Proveedor | Plan de entrada | RAM | CPU | Disco | ¿Cumple el suelo de 8 GB? |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 — 5.50 EUR/mes sin IVA | 8 GB | 4 vCPU | 100 GB SSD | Sí |
| Hetzner | CX23 — 5.49 EUR/mes sin IVA | 4 GB | 2 vCPU | 40 GB NVMe | No, sube a CX33 |
| DigitalOcean | Droplet básico — 6 USD/mes | 1 GB | 1 vCPU | 25 GB SSD | No |
| Vultr | Cloud Compute — 5 USD/mes | 1 GB | 1 vCPU | 25 GB SSD | No |
| Linode | Nanode — 5 USD/mes | 1 GB | 1 vCPU | 25 GB SSD | No |
Solo un plan de entrada de esa lista cumple. El nivel más barato de Contabo tiene 8 GB desde que se renombró la gama, algo inusual a este precio y que lo convierte en la recomendación por defecto para Jan Server. Hetzner llega a los mismos 8 GB con CX33 a 8.49 EUR/mes sin IVA, sobre 80 GB de NVMe en vez de 100 GB de SSD SATA.
Los proveedores estadounidenses empiezan todos en 1 GB, así que alojar Jan Server ahí implica subir varios escalones en vez de comprar el plan de entrada.
Resumen de dimensionamiento
| Configuración | RAM | vCPU | Disco |
|---|---|---|---|
| Un solo usuario, inferencia remota | 8 GB | 2 | 40 GB |
| Uso en equipo, todos los servicios activos | 12 GB | 4 | 80 GB |
| Inferencia por CPU en local, solo pruebas | 12 GB+ | 4+ | 100 GB |
| Inferencia por GPU en local | Según el modelo | Según el modelo | 100 GB+ y una GPU NVIDIA |
Elige la fila que coincida con cómo piensas ejecutar la inferencia, y recuerda que la cifra de 8 GB es un mínimo documentado, no un objetivo cómodo. Para ver los planes y precios actuales de los proveedores, consulta nuestra comparativa de VPS.
Frequently asked questions
¿Cuál es la RAM mínima para ejecutar Jan Server en un VPS?
Ocho gigabytes. Esa cifra viene del propio README del proyecto, que además recomienda 12 GB para ejecutar el conjunto completo de servicios con holgura. Cubre los microservicios en Go, Postgres, Keycloak y la puerta de enlace Kong, y asume que la inferencia ocurre en otro sitio y no en la misma máquina.
¿Cuánto espacio de disco debo asignar a Jan Server?
Empieza en 40 GB si usas un endpoint de inferencia remoto. Solo las imágenes de contenedor ya suman varios gigabytes entre los servicios, Postgres, Keycloak y Kong, y luego Postgres crece con tu historial de conversaciones. Activar la Media API con almacenamiento local o guardar en caché los pesos de un modelo cambia esa cifra de forma considerable.
¿Jan Server necesita una GPU NVIDIA?
Solo si ejecutas la inferencia en local mediante el perfil de GPU de vLLM, que reserva un dispositivo NVIDIA y no arranca sin uno. Apuntar Jan Server a un endpoint remoto compatible con OpenAI elimina el requisito por completo, y esa es la configuración habitual en un VPS.