Windmill
Open-source developer platform that turns scripts into webhooks, workflows, and UIs
About
Windmill is an open-source developer platform for running your entire internal infrastructure: write a script in Python, TypeScript (Deno), Go, Bash, PHP, or SQL and Windmill turns it into an API/webhook endpoint, a scheduled job, a step in a workflow (Flow), or a full internal app with an auto-generated UI.
It self-hosts as a stateless Rust server + workers backed by Postgres, deployable with a single docker-compose file (or Helm for Kubernetes), and ships a public Hub of shared scripts, flows, and apps.
What it can do
- • Scripts in Python, TypeScript (Deno), Go, Bash, PHP, SQL with auto-generated UIs from function signatures
- • Flows: DAG workflows with branches, loops, retries, and per-step error handling
- • Triggers: schedules/cron, webhooks, email, Postgres/Kafka/S3/WebSocket listeners
- • Apps: low-code internal-tool builder on top of scripts and flows
- • Workspaces, per-workspace secrets/variables, roles and SSO (OAuth/OIDC)
- • Windmill Hub: public library of shared scripts, flows, and apps
- • Sandboxed `# sandbox <image>` runtime for running any Docker image daemonless via nsjail; PID-namespace isolation on by default
Setup
- Install Docker and Docker Compose and make sure the Docker daemon is running.
- Download the three deploy files from the repo:
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
- Start everything:
docker compose up -d - Open http://localhost and sign in with
admin@windmill.dev/changeme— change the credentials on first login. The setup wizard offers an opt-out for anonymous usage telemetry. - Create a workspace, write your first script in the web IDE, and run it (or hit Deploy to expose it as a webhook / schedule / flow step).
Prerequisites
Docker + Docker Compose; roughly 1 vCPU and 1–2 GB RAM per worker (provider guidance); Postgres is bundled in the compose file, or set DATABASE_URL in .env to use a managed database.
Use cases
Works with
Trust score — 8/10
Scored 8/10 (verified tier, metrics-v1). Evidence: 18,164 GitHub stars (log-scaled vs catalog peers); last push 0d ago; 100 releases/12mo; 867 open issues. Manual review: default creds admin/changeme; opt-out telemetry in setup wizard; EE features proprietary. License: dual Apache-2.0/AGPL-3.0 + proprietary EE.
★ 18,164 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 8.0/10
- Maintenance · recency, releases, issue load
- 8.2/10
- Openness · license + docs
- 8.6/10
- Manual review · sanity read + red-flag check
- 9.0/10
- · 18,164 GitHub stars (log-scaled vs catalog peers)
- · last push 0d ago; 100 releases/12mo; 867 open issues
- · manual review: default creds admin/changeme; opt-out telemetry in setup wizard; EE features proprietary
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.