Self-host Windmill
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
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
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-inWhat you take on
Windmill is the heaviest tool in this hub and its free edition has real limits. Read these before you commit: