Independent testing Updated August 2026 387 self-hosting guides 5 VPS providers tested

guide

Windmill VPS-vereisten: RAM, CPU & Opslag Gids

Windmill schaal je per worker, niet per app: ongeveer 1 vCPU en 1-2 GB elk. Wat de echte Compose-stack nodig heeft en welke VPS-specificaties daarbij passen.

Windmill is een open-source ontwikkelaarsplatform dat scripts omzet in webhooks, workflows, geplande taken en interne interfaces - gepositioneerd tegenover Retool en Temporal, niet tegenover een hoster van statische sites. De community-editie valt onder AGPL-3.0, de enterprise-versie zit achter een licentiesleutel.

Het dimensioneren verloopt anders dan bij een gewone webapp, omdat de eenheid van capaciteit de worker is en niet de applicatie.

De architectuur die je specificaties bepaalt

De officiële docker-compose.yml start zeven diensten:

DienstImageRol
dbpostgres:16Database én takenwachtrij
windmill_serverghcr.io/windmill-labs/windmill:mainAPI en webinterface, poort 8000
windmill_workerzelfde image, MODE=workerVoert taken uit
windmill_worker_nativezelfde image, NATIVE_MODE=trueUitsluitend lichte taken
windmill_indexerzelfde image, MODE=indexerVolledige tekstzoekfunctie over taken
windmill_extraghcr.io/windmill-labs/windmill-extra:latestLanguage servers voor de editor
caddyghcr.io/windmill-labs/caddy-l4:2.11.4-1Reverse proxy op poort 80

Twee dingen in die tabel wegen zwaarder dan de rest.

Er is geen Redis. Windmill gebruikt PostgreSQL als wachtrij. Talloze handleidingen van derden voegen een Redis-container en een REDIS_URL toe; het officiële Compose-bestand bevat geen van beide, en wie zo’n handleiding kopieert draait een dienst waar Windmill nooit mee praat.

De workers zijn de kostenpost. De server staat betrekkelijk stil. Waar je werkelijk voor betaalt, is workercapaciteit.

RAM en CPU: dimensioneren per worker

De praktische regel is één worker per vCPU, 1-2 GB RAM elk, plus marge voor Postgres en de server.

OpstellingvCPU / RAMWat het je oplevert
Proef, één worker2 / 2 GBWerkt, maar één taak tegelijk en geen ruimte voor een grote afhankelijkheidsinstallatie
Standaardstack, 1-2 workers2-4 / 4 GBHet praktische minimum voor echt gebruik
Meerdere gelijktijdige taken4 / 8 GBHet comfortabele doel voor een klein team

Native workers zijn de uitzondering die je moet kennen: ze voeren lichte taken uit met ongeveer 0,1 CPU en 128 MB, en daarom kan de standaardstack er een meeleveren naast een gewone worker zonder een extra kern te eisen.

De variabele die niemand inschat, is het installeren van afhankelijkheden. Een Python-taak die pandas ophaalt, of een TypeScript-taak met een omvangrijk lockbestand, jaagt het geheugengebruik ver boven de rustwaarde. Als taken alleen bij de eerste run mislukken en daarna wel slagen, kijk je naar een afhankelijkheidscache die met te weinig RAM wordt opgebouwd.

Opslag: de afhankelijkheidscache is de groei

De database blijft lang bescheiden - taakmetadata, scripts, flows en logboeken zijn tekst. Het volume dat groeit is worker_dependency_cache, waar elke Python-wheel en elk npm-pakket dat je taken importeren bewaard blijft, zodat latere runs de installatie overslaan.

Begin met 40 GB. Houd het cachevolume in de gaten in plaats van de database als je overweegt op te schalen, en kies bij voorkeur NVMe of SSD: Postgres doet hier naast opslag ook wachtrijdienst en is gevoelig voor I/O-latentie.

VPS-pakketten die aan deze vereisten voldoen

AanbiederPakketvCPU / RAM / SchijfPrijsOordeelLink
ContaboCloud VPS 44 / 8 GB / 100 GB SSD5.50 EUR/mnd excl. btwRuimte voor vier workers voor de prijs van een instappakketContabo
Hetzner CloudCX232 / 4 GB / 40 GB NVMe5.49 EUR/mnd excl. btwGeschikt voor de standaardstack met twee workersHetzner
DigitalOceanBasic 4 GB2 / 4 GB / 80 GB SSD24 USD/mndDezelfde specificaties als de CX23, vier keer de prijsDigitalOcean
VultrRegular 4 GB2 / 4 GB / 80 GB SSD20 USD/mndDe ruimste keuze aan regio’sVultr
LinodeLinode 4 GB2 / 4 GB / 80 GB SSD24 USD/mndVoorspelbare prestaties, sterke APILinode

Windmill is een van de weinige zelfgehoste toepassingen waarbij een pakket van 1 GB niet meteen afvalt: één native worker past er werkelijk in. Een gewone worker draait daar echter niet, wat elke Python- of TypeScript-taak met afhankelijkheden uitsluit. Dat is een demonstratie, geen installatie.

Opschalen

Windmill schaalt horizontaal door workercontainers toe te voegen, niet door één proces groter te maken. Voor dubbele doorvoer voeg je een tweede windmill_worker-dienst toe die naar dezelfde DATABASE_URL wijst, en geef je de machine er een kern bij.

Dat heeft een praktisch gevolg voor je VPS-keuze: hier winnen meer kernen het van snellere kernen. De 4 vCPU van Contabo voor 5.50 EUR excl. btw kopen parallellisme voor vier workers, waar de CX23 van Hetzner er voor vrijwel dezelfde prijs twee koopt. Bestaat je werklast uit veel kleine taken in plaats van enkele zware, dan is die verhouding de hele beslissing.

Voor een breder overzicht van de beschikbare pakketten, zie onze volledige VPS-vergelijking.

Frequently asked questions

Hoeveel RAM heeft een zelfgehoste Windmill-instantie nodig?

Dimensioneer per worker in plaats van per applicatie. De vuistregel is één worker per vCPU met 1-2 GB RAM elk, bovenop Postgres en het serverproces. Een instantie met één worker draait op 2 GB, de standaard Compose-stack met twee workers zit ruim op 4 GB, en 8 GB met 4 vCPU is het verstandige doel zodra meerdere taken tegelijk lopen.

Hoeveel CPU-kernen moet ik aan Windmill toewijzen?

Begin met 2 vCPU en tel er een kern bij voor elke extra worker, want een standaardworker voert één taak tegelijk uit. Native workers zijn de uitzondering: die handelen lichte taken af met ongeveer 0,1 CPU en 128 MB, waardoor de standaardstack er een meelevert naast de gewone worker zonder een extra kern te vragen.

Heeft Windmill Redis of een andere message broker nodig?

Nee. Windmill gebruikt PostgreSQL zowel als database als als takenwachtrij. Dat is ongebruikelijk en goed om te weten, want veel handleidingen van derden voegen een Redis-dienst toe die het officiële Compose-bestand niet bevat. PostgreSQL 14 of nieuwer is de enige benodigde gegevensopslag, en Redis toevoegen levert alleen een nutteloze container op.