面向内部代码的开源开发者平台:API、后台任务、工作流和UI。可自托管的替代方案,适用于Retool、Pipedream、Superblocks,以及简化版的Temporal,提供自动生成的UI和自定义UI,可将工作流和脚本作为内部应用触发。
脚本会自动转换为可共享的UI,并且可以组合成工作流,或用于通过低代码构建的更丰富应用中。支持的语言:Python、TypeScript、Go、Bash、SQL、GraphQL、PowerShell、Rust等。
立即尝试 - 网站 - 文档 - *** - 中心 - 贡献者指南
Windmill 完全开源(AGPLv3 许可),Windmill Labs 提供专用实例以及商业支持和许可。
脚本参数会被自动解析并生成前端。
构建工作流!您可以将自己的脚本或社区在WindmillHub上共享的脚本链接起来。
在脚本和工作流之上构建复杂UI。
在Windmill之上构建您的整个基础设施!
//import any dependency from npm
import * as wmill from "windmill-client";
import * as cowsay from "cowsay@1.5.0";
// fill the type, or use the +Resource type to get a type-safe reference to a resource
type Postgresql = {
host: string;
port: number;
user: string;
dbname: string;
sslmode: string;
password: string;
};
export async function main(
a: number,
b: "my" | "enum",
c: Postgresql,
d = "inferred type string from default arg",
e = { nested: "object" }
//f: wmill.Base64
) {
const email = process.env["WM_EMAIL"];
// variables are permissioned and by path
let variable = await wmill.getVariable("f/company-folder/my_secret");
const lastTimeRun = await wmill.getState();
// logs are printed and always inspectable
console.log(cowsay.say({ text: "hello " + email + " " + lastTimeRun }));
await wmill.setState(Date.now());
// return is serialized as JSON
return { foo: d, variable };
}
Windmill 支持多种本地开发方式并与您的实例同步:
| 工具 | 描述 |
|---|---|
| CLI | 从本地文件或GitHub同步脚本,从命令行运行脚本/工作流 |
| VS Code 扩展 | 直接在VS Code / Cursor中编辑和测试脚本及工作流,提供完整IDE支持 |
| Git 同步 | Windmill与Git仓库之间的双向同步 |
| Claude Code | 借助Claude进行AI辅助开发,支持脚本、工作流和应用 |
您可以通过为 wmill 客户端库传递正确的环境变量,从您的实例获取资源和变量,从而在本地运行脚本。请参阅本地开发文档。
我们将Windmill与其他可自托管工作流引擎(Airflow、Prefect和Temporal)进行了比较,Windmill在两个基准测试中都是性能最佳的解决方案:一个由40个轻量级任务组成的工作流,以及一个由10个长时间运行任务组成的工作流。
所有方法和结果详见我们的基准测试页面。
详见安全文档。
任务启动后,与在节点上使用相应的运行器(Deno/Go/Python/Bash)运行相同脚本相比,没有额外开销。任务从队列中被拉取、启动并将结果发送回数据库的额外延迟约为50ms。一个典型的轻量级Deno任务总共需要约100ms。
Windmill 可在 AWS(EKS/ECS)、GCP、Azure、Ubicloud、Fly.io、Render.com、Hetzner、Digital Ocean 等平台上运行。经验法则:每 1vCPU 和 1-2 GB RAM 配置 1 个工作节点。
直接从超级管理员 UI 配置 OAuth 和 SSO(Google Workspace、Microsoft/Azure、Okta)。参见文档。
社区版可免费在内部使用。如需商业再分发或托管服务,请联系 。详情参见 LICENSE 和 定价。
Windmill 的“社区版”可在 ghcr.io/windmill-labs/windmill 托管的 Docker 镜像和 GitHub 二进制发行版中获取,包含 AGPLv3 和 Apache 2 许可下的源代码文件,但也包含非开源的专有和非公开代码及功能,这些代码和功能受以下条款约束:Windmill Labs, Inc. 授予免费使用“社区版”所有功能的权利(除软件中设置的限制和配额外无其他限制),以及按原样分发社区版的权利,但未经明确协议,不得销售、转售、将 Windmill 作为托管服务提供、修改或以任何形式包装。
从本仓库源代码中不使用“enterprise”功能标志编译的二进制文件,根据 https://github.com/windmill-labs/windmill/blob/main/LICENSE-AGPL 许可条款和条件开源。
若要将 Windmill 的任何部分作为产品功能直接重新暴露给您的用户(嵌入的公共 Windmill“应用”除外),或在“Windmill 社区版”基础上构建商业销售或嵌入可分发产品或二进制文件的功能,您必须获得商业许可。如有任何问题,请联系 。若要使用从本仓库源代码中不使用“enterprise”功能标志编译的二进制文件执行上述操作,您必须遵守 AGPLv3 许可条款和条件,或从 Windmill Labs, Inc. 获得商业许可。
在组织内部按原样使用 Windmill“社区版”,或按原样使用其 API,无需商业许可。
在 Windmill 中,集成被称为资源和资源类型。每个资源都有一个资源类型,该类型定义了资源需要实现的 schema。
在自托管实例上,您可能需要从 WindmillHub 导入所有已批准的资源类型。安装脚本会提示您将其设置为自动每日同步。
我们建议使用 Nix。有关所有选项,请参见 ./frontend/README_DEV.md。
使用本地前端(热重载)的后端:
cd frontend
npm install
npm run generate-backend-client # 或在 Mac 上使用 generate-backend-client-mac
npm run dev
Windmill 可通过 http://localhost/ 访问
有关所有运行选项,请参见 ./frontend/README_DEV.md 文件。
start-dev-db.sh 脚本启动本地 Postgres 数据库,该脚本将在 postgres://postgres:changeme@localhost:5432/windmill 提供数据库。然后使用以下命令运行迁移:cargo install sqlx-cli
env DATABASE_URL= sqlx migrate run
这也将避免 sqlx 的 query! 宏出现编译时问题。
2. (可选,仅 Linux)安装 https://github.com/google/nsjail 并确保其在 PATH 中可访问
3. 安装 bun、deno 和 python3(以及任何您想使用的语言),确保二进制文件位于 /usr/bin/bun、/usr/bin/deno 和 /usr/local/bin/python3,或设置相应的环境变量。
4. (可选)安装 lld 链接器
5. 进入 frontend/ 目录:
npm install、npm run generate-backend-client,然后 REMOTE=http://localhost:8000 npm run devexport NODE_OPTIONS="--max-old-space-size=4096"mkdir frontend/build 创建空的 frontend/build 文件夹backend/ 目录:
env DATABASE_URL= RUST_LOG=info cargo runcargo run --features python 以启用 python 执行器。http://localhost:3000 访问© 2023-2026 Windmill Labs, Inc.
请登录使用轩辕镜像享受快速拉取体验,支持国内访问优化,速度提升
docker pull ghcr.io/windmill-labs/windmill-ee-nsjail:9d2785b探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务