Windmill
temaki.windmill
Workflow and job platform that turns scripts in Python, TypeScript, Go, Bash and SQL into scheduled jobs, APIs and approval flows, with auto-generated forms and a flow builder.
A Docker Compose file for Windmill alone, generated from the catalog and checked by the safety inspector. Sign in and use Kitchen Credits to activate it.
Uses the Medusa cart and payment-session path. This test control does not create an order or capture payment.
Windmill treats a script as the unit of automation: a function's signature is parsed to generate an input form and an HTTP endpoint automatically, so the same code is runnable by a person through a UI and by a machine through an API without extra scaffolding. Scripts compose into flows with branching, loops over collections, retries, error handlers and suspend-for-approval steps, and workers execute jobs from a queue with per-script dependency isolation. An app builder assembles those endpoints into internal tools, and everything can be synchronised to a Git repository so the platform's state stays version-controlled. Secrets and resources are stored centrally and injected at run time.
You know it worked when
- The interface loads and an administrator account can sign in.
- At least one worker is reported as connected.
- A script runs and its result appears in the run history.
- The auto-generated form accepts inputs matching the script's signature.
- A flow with two steps completes in order and its API endpoint returns the result.
Known sharp edges
- Workers execute arbitrary code, so a person able to author or edit a script has execution access to the worker container and everything it can reach.
- The image tag tracks a development branch rather than a release, which means an unattended pull can bring in breaking changes.
- Workers and server are separate processes against a shared PostgreSQL instance, and a deployment with no worker accepts jobs that then queue indefinitely.
- Each script's dependencies are resolved and cached on first run, so a cold worker is much slower than a warm one and a lost cache volume repeats that work.