Skip to content

Self-host Windmill

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A code-first developer platform that turns scripts in Python, TypeScript, Go, Bash, SQL and more into webhooks, scheduled jobs, flows and internal UIs — the self-hostable alternative to Retool, Pipedream and Temporal rather than a Zapier-style connector catalogue. The core is AGPL-3.0 and the free Community Edition has no execution cap, but it is capped at 50 users and lacks SAML/SCIM, Enterprise-grade audit logs, autoscaling and the forms/prompts layer of approval steps, and the shipped CE image also contains proprietary code.

Key facts

LicenseAGPL-3.0
StackRust, Svelte, PostgreSQL
Min RAM4096 MB
Official imageyes
Measured idle RAM933 MB
Difficulty
Our recommendation

Pick Windmill when the people building the automations write code. Scripts in Python, TypeScript, Go, Bash, SQL and more become webhooks, schedules, multi-step flows and small internal UIs, under an AGPL-3.0 core with unlimited executions in the free edition. It is the Retool/Pipedream replacement in this hub, not the Zapier one — if a non-developer needs to build the workflows, look at n8n or Activepieces instead.

What you need

  • Any VPS with at least 4096 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • About an afternoon — budget time for troubleshooting
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# Windmill — the README's compose install: server + 3 workers + native worker + Postgres 18 + an extras (LSP) container + Caddy (ports 80 and 25)
mkdir -p windmill && cd windmill
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/Caddyfile -o Caddyfile
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
# .env ships the DB password 'changeme'; docker-compose.yml hard-codes the same on the db service (not published outside Docker) — change both together or leave both
docker compose up -d
# open http://SERVER_IP — default login admin@windmill.dev / changeme; change it on first sign-in

What you take on

Windmill is the heaviest tool in this hub and its free edition has real limits. Read these before you commit:

non-negotiableThe default compose file runs a server, three general workers and a native worker — each worker with a 2 GB memory limit — plus Postgres 18, an extras container and a Caddy proxy that publishes ports 80 and 25. The 4 GB on this page is our figure from that file and upstream's rule of thumb of one worker per vCPU with 1–2 GB of RAM; the project publishes no single minimum, and a busy instance wants more.
non-negotiableThe Community Edition image you pull contains proprietary code alongside the AGPL-3.0 and Apache-2.0 parts. The README grants free internal use and the right to distribute the Community Edition as is, but not to sell, resell, serve it as a managed service, modify or wrap it without an agreement — read that paragraph if 'open source' has to mean the whole binary.
non-negotiableThe free edition is quota'd, not feature-complete: a maximum of 50 users, three workspaces, four permission groups and ten SSO users. SAML/SCIM, audit logs (Enterprise on the pricing page; the docs give CE a 14-day retention against a year on EE), autoscaling, concurrency limits, external secret backends, agent workers and the staging/production deployment UI are Enterprise features.
non-negotiableThe downloaded .env carries the database password changeme, and docker-compose.yml hard-codes the same value on the db service — change them together or the server cannot connect (the database port is not published outside Docker). The first login is admin@windmill.dev / changeme; change it on first sign-in.

An alternative to

Head-to-head

More in Workflow automation

Workflow automation

Activepieces

A no-code automation builder positioned as an open-source replacement for Zapier: a visual flow editor, a large library of 'pieces' (connectors) written in TypeScript, and MCP servers in the open core (its AI agents and Chat are paid-layer features). The Community Edition core is MIT-licensed; access control, audit logs, Git sync and multi-project features are sold as paid editions. Runs as one container for hobby use or a four-service compose stack for production.
TypeScriptNode.jsPostgreSQLRedis
easyRead guide →
Workflow automation

Huginn

A system for building agents that perform automated tasks for you online — they read the web, watch for events and take actions on your behalf, in the IFTTT/Zapier mould but with the data on your own server. A Ruby on Rails application under the plain MIT license, in continuous development since 2013, with official Docker images that bundle MySQL so a single container is a complete install. Agents are configured as JSON, not dragged onto a canvas — the most hands-on tool in this hub.
RubyRailsMySQL
easyRead guide →
Workflow automation

n8n

A fair-code workflow automation tool — connect APIs and build automations visually, self-hosted so your data and credentials never leave your server.
TypeScriptNode.js
moderateRead guide →
Workflow automation

Node-RED

A flow-based programming tool for event-driven applications: a browser editor where you wire together nodes from a palette, on a light Node.js runtime that is equally at home on a Raspberry Pi and in the cloud. Originally built by IBM's Emerging Technology Services team, now an OpenJS Foundation project under Apache-2.0 with thousands of community-contributed nodes. It is the pick for MQTT, hardware and event plumbing more than for SaaS-to-SaaS automation — and its editor ships with no login until you configure one.
Node.js
easyRead guide →

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.