Jan Server is een multi-service platform en geen losse applicatie, en dat zie je terug in de vereisten. De README van het project legt de ondergrens op minimaal 8 GB RAM, 12 GB aanbevolen, waarmee de 4 GB-plannen die budget-VPS-vergelijkingen domineren, afvallen.
Hieronder wordt dat cijfer uitgesplitst en wordt getoond welke onderdelen veranderen als je configuratie verandert.
Waar het geheugen naartoe gaat
Een standaarddeployment start ongeveer negen containers. Geen daarvan is op zichzelf enorm, maar samen tellen ze op:
- Go-microservices โ de LLM API, Response API, Media API, MCP-tools en een service-template
- PostgreSQL โ opslag van gesprekken en berichten
- Keycloak โ OIDC-authenticatie, draaiend vanuit
quay.io/keycloak/keycloak:24.0.5, een JVM-applicatie met een reรซle geheugenvoetafdruk - Kong v3.5 โ de API-gateway die elk verzoek valideert
- Web chat UI โ een React-app op poort 3001
Keycloak en Postgres zijn de twee die 4 GB krap maken. Op een server met 8 GB draait de stack met ruimte over; daaronder worden containers tijdens het opstarten OOM-killed en oogt de storing als een willekeurige crash in plaats van een geheugenprobleem.
De aanbeveling van 12 GB geldt als je alles inschakelt, inclusief de Media API en de optionele observability-stack van OpenTelemetry, Prometheus, Jaeger en Grafana.
CPU
De Go-diensten zijn niet CPU-bound. Ze brengen hun tijd door met wachten op de database en op welk model-endpoint je ook hebt geconfigureerd, dus 4 vCPU is ruim voldoende voor de hele stack en 2 vCPU volstaat voor een installatie voor รฉรฉn gebruiker.
Dat verandert volledig als je inference op dezelfde machine draait. Het CPU-vLLM-profiel bestaat precies daarvoor, en het gebruikt elke core die je het geeft terwijl het tokens veel trager produceert dan een GPU. Behandel CPU-inference als een manier om te controleren of de deployment werkt, niet als de configuratie waarmee je gebruikers bedient.
Schijf
Reken op minimaal 40 GB bij remote inference. Drie dingen verbruiken dat:
- Container-images โ enkele gigabytes verspreid over de diensten, Keycloak, Kong en Postgres
- PostgreSQL-data โ groeit mee met gespreks- en berichtgeschiedenis
- Media-opslag โ alleen als je de Media API inschakelt en bestanden lokaal bewaart in plaats van in S3
Lokale modelgewichten zijn de wildcard. Het standaardmodel voor de vLLM-profielen is janhq/Jan-v1-4B, wat bescheiden is, maar een modelcachevolume blijft de snelste manier om een kleine schijf te vullen. Staat lokale inference ergens in je plannen, begin dan bij 100 GB.
GPU
Alleen nodig voor het vLLM GPU-profiel, dat via het Compose-blok deploy.resources een NVIDIA-device reserveert en weigert te starten zonder een. Standaard VPS-plannen van de providers hieronder bevatten geen GPU, dus de praktische opties zijn een remote OpenAI-compatibel endpoint, het trage CPU-profiel, of een aparte GPU-host waar Jan Server naartoe verwijst.
Instapplannen van providers tegen deze vereisten
| Provider | Instapplan | RAM | CPU | Schijf | Voldoet aan 8 GB-grens? |
|---|---|---|---|---|---|
| Contabo | Cloud VPS 4 โ 5.50 EUR/mnd excl. btw | 8 GB | 4 vCPU | 100 GB SSD | Ja |
| Hetzner | CX23 โ 5.49 EUR/mnd excl. btw | 4 GB | 2 vCPU | 40 GB NVMe | Nee, stap over naar CX33 |
| DigitalOcean | Basic droplet โ 6 USD/mnd | 1 GB | 1 vCPU | 25 GB SSD | Nee |
| Vultr | Cloud Compute โ 5 USD/mnd | 1 GB | 1 vCPU | 25 GB SSD | Nee |
| Linode | Nanode โ 5 USD/mnd | 1 GB | 1 vCPU | 25 GB SSD | Nee |
Slechts รฉรฉn instapplan in dit rijtje voldoet. Het goedkoopste niveau van Contabo is 8 GB sinds de line-up werd hernoemd, wat ongebruikelijk is voor deze prijs en het de standaardaanbeveling voor Jan Server maakt. Hetzner haalt dezelfde 8 GB met CX33 voor 8.49 EUR/mnd excl. btw, op 80 GB NVMe in plaats van 100 GB SATA-SSD.
De Amerikaanse providers beginnen allemaal bij 1 GB, dus Jan Server daar hosten betekent een paar niveaus hoger klimmen in plaats van het instapplan te kopen.
Samenvatting van de dimensionering
| Configuratie | RAM | vCPU | Schijf |
|---|---|---|---|
| Eรฉn gebruiker, remote inference | 8 GB | 2 | 40 GB |
| Teamgebruik, alle diensten ingeschakeld | 12 GB | 4 | 80 GB |
| Lokale CPU-inference, alleen testen | 12 GB+ | 4+ | 100 GB |
| Lokale GPU-inference | Per model | Per model | 100 GB+ en een NVIDIA-GPU |
Kies de rij die past bij hoe je inference wilt draaien, en onthoud dat het cijfer van 8 GB een gedocumenteerd minimum is en geen comfortabel streefdoel. Voor actuele plannen en prijzen van providers, zie onze VPS-vergelijking.
Frequently asked questions
Wat is het minimale RAM om Jan Server op een VPS te draaien?
Acht gigabyte. Dat cijfer komt uit de eigen README van het project, die ook 12 GB aanbeveelt om de volledige set diensten comfortabel te draaien. Het dekt de Go-microservices, Postgres, Keycloak en de Kong-gateway, en gaat ervan uit dat inference elders gebeurt en niet op dezelfde machine.
Hoeveel schijfruimte moet ik reserveren voor Jan Server?
Begin bij 40 GB als je een remote inference-endpoint gebruikt. Alleen al de container-images tellen op tot enkele gigabytes verspreid over de diensten, Postgres, Keycloak en Kong, en Postgres groeit vervolgens mee met je gespreksgeschiedenis. De Media API met lokale opslag inschakelen of modelgewichten cachen verandert dat cijfer flink.
Heeft Jan Server een NVIDIA-GPU nodig?
Alleen als je inference lokaal draait via het vLLM GPU-profiel, dat een NVIDIA-device reserveert en niet start zonder een. Jan Server naar een remote OpenAI-compatibel endpoint laten wijzen, laat die eis volledig vervallen, en dat is de gebruikelijke opzet op een VPS.