Windmill
代码即工作流的开源自动化神器
写几行 Python/JS,自动变成 API、定时任务和可视化界面!比 Airflow 快 13 倍的开源自托管工作流引擎
⭐ 开源免费 | 支持 Python/JS/Go/SQL/Bash | 自动生成 UI 和 API | 4000+ 组织在用

图1:Windmill 的工作流编排界面,代码步骤以可视化流程图展示
一、这是个啥?一句话说清楚
Windmill 是一款开源的「脚本转工作流」平台。简单说,你把日常要手动执行的脚本(比如「每天拉一次数据」「用户注册后发封邮件」「定时清理临时文件」)写进 Windmill,它帮你把这些脚本变成:
▸可以定时自动执行的任务
▸可以通过 Webhook 触发的 API 接口
▸带有表单界面、能让非技术人员也能操作的工具
▸多个步骤连接起来的复杂工作流
如果你用过 n8n,Windmill 做的是类似的事,但走的是「代码优先」的路线——更灵活,对开发者更友好,执行性能更强。
💡 比喻:Windmill 就像给你的脚本穿上了「自动化外衣」——原本要在终端手动跑的代码,有了 Windmill 之后,可以定时跑、手动触发、团队共享、全程有日志。
二、核心数据速览
项目名称 | Windmill |
GitHub 地址 | https://github.com/windmill-labs/windmill |
开源协议 | AGPL-3.0(社区版免费) |
项目语言 | Rust + TypeScript + Go |
官方网站 | https://windmill.dev |
性能 | 号称业界最快工作流引擎,比 Airflow 快 13 倍 |
支持语言 | Python / TypeScript / Go / Bash / SQL / PHP / REST |
部署方式 | Docker Compose / Kubernetes / npm CLI |
用户规模 | 全球 4000+ 组织在生产环境使用 |
三、能做什么?核心功能详解
📝 功能 1:脚本即服务(Scripts)
在 Windmill 里写一个 Python 或 TypeScript 函数,系统会自动:
▸生成这个函数的 REST API 接口,可以直接 HTTP 调用
▸根据函数的参数,自动生成一个表单界面(非技术人员点点填填就能触发)
▸生成 Webhook,可以从外部系统触发
▸保留每次执行的完整日志,方便排查问题
🔗 功能 2:工作流编排(Flows)
把多个脚本串联起来,构成完整的业务流程:
▸支持条件分支(if/else):根据上一步的结果决定走哪条路
▸支持并行执行:多个步骤同时跑,提高效率
▸支持 for 循环:对列表中每个元素执行同一个操作
▸支持错误处理和重试机制
▸可视化 DAG 图展示流程结构,一眼看清执行逻辑
⏰ 功能 3:定时任务调度(Schedules)
支持 cron 表达式,可以设置任意时间间隔的定时任务,比如:
▸每天 8:00 自动拉取数据并发送报告邮件
▸每小时检查一次数据库状态
▸每周一生成周报并发到钉钉群
🎨 功能 4:自动生成 UI 界面(Apps)
即使没有前端代码,Windmill 也能根据你的脚本参数自动生成操作界面,或者通过低代码拖拽构建器自定义界面,让不懂代码的同事也能使用这些内部工具。
🔒 功能 5:密钥和资源管理
数据库连接信息、API 密钥、密码等敏感信息可以统一存储在 Windmill 的「Resources」里,加密保存,脚本通过变量引用,团队成员不需要知道具体密钥内容。
📊 功能 6:完整的可观测性
每次脚本执行都有:完整的日志输出、执行时间统计、输入输出记录、错误追踪。团队可以看到所有历史执行记录,出了问题能快速定位。
四、安装教程
方式一:Docker Compose(推荐自托管)
第一步:下载官方 docker-compose 文件:
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/.env -o .env
第二步:启动服务:
docker compose up -d
第三步:浏览器访问 http://你的IP:8000,按提示注册管理员账号,即可开始使用。
💡 默认的 docker-compose.yml 包含 Windmill 服务 + PostgreSQL 数据库,一键启动,无需额外配置数据库。
方式二:本地快速体验(npm)
npm install -g windmill-cli
wmill workspace add local http://localhost:8000 admin
然后可以在命令行直接推送本地脚本到 Windmill 工作空间。
五、实战案例:3 个典型使用场景
案例一:每日自动发送数据报告
假设你每天需要从数据库查询昨天的订单数据,整理成表格发到邮件或企业微信群:
▸在 Windmill 写一个 Python 脚本,连接数据库、查询数据、格式化输出
▸设置 Webhook 或直接连接数据库资源(密码存在 Resources 里不泄露)
▸添加定时器:每天 8:00 自动触发
▸完成!再也不需要每天手动执行脚本
案例二:新员工入职流程自动化
HR 填写新员工表单,触发工作流:
▸步骤 1:在 GitHub 给新员工创建账号并加入团队
▸步骤 2:在 Slack 创建个人频道并发送欢迎消息
▸步骤 3:发送入职指引邮件
▸步骤 4:在内部系统创建员工档案
这 4 步原本需要 4 个不同系统操作,有了 Windmill 工作流,HR 只需填一次表单,其余自动完成。
案例三:给同事做一个内部数据查询工具
开发一个 Python 函数,接收「员工姓名」或「订单号」作为参数,查询数据库并返回结果。Windmill 自动生成一个带输入框的界面,同事打开浏览器就能用,完全不需要你给他开数据库权限。
六、Windmill vs 同类工具对比
对比项 | Windmill | n8n | Airflow | Temporal |
核心理念 | 代码优先 | 可视化优先 | 代码优先 | 代码优先 |
执行性能 | ⚡ 最快 | 中等 | 较慢 | 快 |
学习门槛 | 低(会写代码即可) | 极低 | 较高 | 较高 |
内置 UI 生成 | ✅ 支持 | ⚡ 有限 | ❌ 无 | ❌ 无 |
自托管 | ✅ 免费 | ✅ 免费 | ✅ 免费 | ✅ 免费 |
适合团队 | ✅ 很适合 | ⚡ 适合 | ✅ 适合 | ✅ 适合 |
七、总结
Windmill 代表了一种「以开发者为中心」的工作流自动化理念:脚本是第一公民,可视化是辅助手段,而不是反过来。这让它在处理复杂业务逻辑时比纯可视化工具(如 n8n)更灵活,比重量级工具(如 Airflow)更易上手。
如果你的团队有以下需求,Windmill 非常值得一试:
▸有大量重复的手动操作脚本需要自动化
▸需要给非技术同事提供简单的工具界面
▸想要内部工具有完整的执行日志和权限管理
▸需要高性能的定时任务和工作流编排
GitHub 地址:https://github.com/windmill-labs/windmill
官方文档:https://windmill.dev/docs
#开源神器 #工作流自动化 #Windmill #脚本自动化 #开发者工具 #DevOps