Windmill Hosting on Your Own VPS
Scripts become APIs, workflows and internal UIs — with executions bounded by your server, not a plan.
Size a server for Windmill
Every stop is a real configuration you can deploy. Priced per 30 days, billed by the hour, exclusive of 18% GST.
What Windmill is
Windmill turns scripts into infrastructure. Write Python, TypeScript, Go or Bash, and Windmill gives each script a generated UI, an HTTP endpoint, a schedule and a place in a workflow — with typed inputs derived from the function signature rather than hand-built forms.
It overlaps with n8n but approaches from the opposite direction. n8n is a canvas where code is the escape hatch; Windmill is code where the canvas is the composition layer. Teams who already write scripts and want them shared, scheduled and observable tend to prefer it.
Self-hosting removes execution metering, which is the constraint that shapes how these tools get used. When runs are billed, people avoid frequent schedules; when they are not, a script can poll every minute because that is what the problem wants.
Why run Windmill on a VPS
Executions are limited by the server, not by a plan tier.
Scripts run with access to your private network — internal databases and APIs are reachable.
Secrets stay in your own instance.
Add worker capacity by resizing, rather than by moving to a higher tier.
Windmill features
Python, TypeScript, Go and Bash scripts as first-class jobs
Auto-generated UIs from function signatures
Workflows composing scripts with branching and retries
Schedules and webhook triggers
An app builder for internal tools
Secret management with per-workspace scoping
Execution logs and audit history
Recommended server
A starting point for Windmill, not a hard floor — size it on the sliders.
| Memory | 4 GB for a small instance; 8 GB once workers run in parallel |
|---|---|
| CPU | 2 vCPU to start; scale cores with concurrent jobs |
| Storage | 40 GB, more if you keep long execution histories |
| Operating system | Ubuntu 22.04 LTS |
How deployment works
Windmill is installed with PostgreSQL as its backing store and one or more workers, behind a reverse proxy with TLS. Workers are the part that scales — adding capacity means more workers, which means more CPU and memory rather than a bigger database.
What people run it for
Internal tooling
Give a script a UI so someone without shell access can run it safely.
Scheduled operations
Cron jobs with logs, retries and visibility, instead of a crontab nobody can see.
Approval workflows
Steps that pause for a human and resume on approval.
Data pipelines
Chained scripts with typed handoffs between them.
Windmill hosting questions
Related applications
Deploy Windmill on your own server
Root access, your choice of size, and no container between you and the application.