ghcr.io/windmill-labs/windmill-ee-cuda

ghcr.io/windmill-labs/windmill-ee-cuda:1.723

ghcr.iolinux/amd641.723大小: 2.80 GB更新于 2026年6月21日
让 AI 帮你使用轩辕镜像?

如果你使用 DeepSeek元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AIDeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

面向内部代码的开源开发者平台:API、后台任务、工作流和UI。可自托管的替代方案,适用于Retool、Pipedream、Superblocks,以及简化版的Temporal,具有自动生成的UI和自定义UI,可将工作流和脚本作为内部应用触发。

脚本会自动转换为可共享的UI,并且可以组合成工作流,或用于通过低代码构建的更丰富的应用中。支持的语言:Python、TypeScript、Go、Bash、SQL、GraphQL、PowerShell、Rust等。

立即尝试 - 网站 - 文档 - *** - Hub - 贡献者指南

Windmill - 面向API、后台任务、工作流和UI的开发者平台

Windmill 完全开源(AGPLv3 许可),Windmill Labs 提供专用实例以及商业支持和许可。

  • Windmill - 面向API、后台任务、工作流和UI的开发者平台
  • 核心概念
  • 实际脚本代码示例
  • 本地开发
  • 技术栈
  • 最快的可自托管工作流引擎
  • 安全性
  • 性能
  • 架构
  • 如何自托管
  • Docker Compose
  • Kubernetes(Helm Charts)
  • 云服务提供商
  • OAuth、SSO 和 SMTP
  • 许可
  • 集成
  • 环境变量
  • 运行本地开发环境
  • 仅前端
  • 后端+前端
  • 贡献者
  • 版权

核心概念

  1. 脚本参数会被自动解析并生成前端。

  2. 构建工作流!您可以将自己的脚本或社区在WindmillHub上共享的脚本链接起来。

  3. 在脚本和工作流之上构建复杂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客户端库从您的实例获取资源和变量,从而在本地运行脚本。请参阅本地开发文档。

技术栈

  • 数据库:Postgres(兼容Aurora、Cloud SQL、Neon、Azure PostgreSQL)
  • 后端:Rust - 无状态API服务器和从Postgres队列拉取任务的工作节点
  • 前端:Svelte 5
  • 沙箱https://github.com/google/nsjail 和PID命名空间隔离
  • 运行时
  • TypeScript/JavaScript:Bun(默认)和Deno
  • Python:python3,使用uv进行依赖管理
  • Go、Bash、PowerShell、PHP、Rust、C#、Java、Ansible

最快的可自托管工作流引擎

我们将Windmill与其他可自托管工作流引擎(Airflow、Prefect和Temporal)进行了比较,Windmill在两个基准测试中都是性能最佳的解决方案:一个由40个轻量级任务组成的工作流,以及一个由10个长时间运行任务组成的工作流。

所有方法和结果详见我们的基准测试页面。

安全性

  • 沙箱https://github.com/google/nsjail 用于文件系统/资源隔离,PID命名空间隔离(默认启用)可防止任务访问工作节点进程内存
  • 密钥:每个工作区使用一个加密密钥来加密存储在Windmill K/V存储中的凭据。我们还建议对Postgres数据库进行加密。

详见安全文档。

性能

任务启动后,与在节点上使用相应的运行器(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 个工作节点。

OAuth、SSO 与 SMTP

可直接从超级管理员 UI 配置 OAuth 和 SSO(Google Workspace、Microsoft/Azure、Okta)。参见文档。

许可协议

社区版可免费在内部使用。如需商业再分发或托管服务,请联系 。详情参见 LICENSE 和 定价。

托管于 ghcr.io/windmill-labs/windmill 的 Docker 镜像以及 GitHub 二进制发行版中提供的 Windmill“社区版”包含 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 导入所有已批准的资源类型。安装脚本会提示您将其设置为每天自动同步。

环境变量名称默认值描述API服务器/工作节点/全部
DATABASE_URLPostgres数据库URL。全部
WORKER_GROUPdefault工作节点所属的工作组,从中拉取配置工作节点
MODEstandalone二进制文件的运行模式。可能的值:standalone(独立模式)、worker(工作节点模式)、server(服务器模式)、agent(代理模式)全部
METRICS_ADDRNone(EE仅用) 用于在 /metrics 路径暴露Prometheus指标的套接字地址。设置为 "true" 可在8001端口暴露全部
JSON_FMTfalse以JSON格式而非logfmt格式输出日志全部
BASE_URLhttp://localhost:8000公开访问实例的基础URL。如有实例设置,将覆盖此值服务器
ZOMBIE_JOB_TIMEOUT30工作节点未发送作业处理 ping 时,作业被视为僵尸作业的超时时间(服务器每30秒检查一次僵尸作业)服务器
RESTART_ZOMBIE_JOBStrue若为true,僵尸作业将重启(使用相同UUID原地重启并保留部分日志);若为false,僵尸作业将标记为失败服务器
NATIVE_MODEfalse启用原生模式:设置 NUM_WORKERS=8,拒绝非原生作业(nativets、postgresql、mysql等)工作节点
SLEEP_QUEUE50数据库中上次检查新作业后休眠的毫秒数。该值乘以 NUM_WORKERS,平均而言,一个工作节点实例每 SLEEP_QUEUE 毫秒拉取一次作业工作节点
KEEP_JOB_DIRfalse作业完成后保留作业目录。用于调试。工作节点
LICENSE_KEY (EE only)NoneWindmill企业版启动时检查的许可证密钥工作节点
SLACK_SIGNING_SECRETNoneSlack应用的签名密钥。参见 Slack文档服务器
COOKIE_DOMAINNoneCookie的域名。若未设置,浏览器将根据完整源自动设置Cookie服务器
DENO_PATH/usr/bin/denodeno二进制文件的路径。工作节点
PYTHON_PATH若不想由uv管理python二进制文件,此处指定其路径工作节点
GO_PATH/usr/bin/gogo二进制文件的路径。工作节点
GOPRIVATE用于私有go模块的GOPRIVATE环境变量工作节点
GOPROXY要使用的GOPROXY环境变量工作节点
NETRC用于私有go registry的netrc内容工作节点
PY_CONCURRENT_DOWNLOADS20设置windmill在任何时候执行的并发python下载的最大数量工作节点
PATHNone路径环境变量,通常继承自系统工作节点
HOMENone用于Go和Bash的主目录,通常继承自系统工作节点
DATABASE_CONNECTIONS50 (服务器)/3 (工作节点)数据库连接池中的最大连接数全部
SUPERADMIN_SECRETNone允许调用者以虚拟超级管理员 *** 身份操作的令牌服务器
TIMEOUT_WAIT_RESULT20'run_wait_result' 端点超时前的等待秒数工作节点
QUEUE_LIMIT_WAIT_RESULTNone'run_wait_result' 端点队列中允许的最大作业数,超过则立即拒绝请求。优先级高于查询参数。若未指定,则无限制工作节点
DENO_AUTH_TOKENSNone传递给工作节点的自定义DENO_AUTH_TOKENS,用于允许使用私有模块工作节点
DISABLE_RESPONSE_LOGSfalse禁用响应日志服务器
CREATE_WORKSPACE_REQUIRE_SUPERADMINtrue若为true,仅超级管理员可创建新工作区服务器
MIN_FREE_DISK_SPACE_MB***工作节点的最小可用磁盘空间(MB)。若工作节点可用空间不足,将发送严重警报工作节点
RUN_UPDATE_CA_CERTIFICATE_AT_STARTfalse若为true,在其他初始化之前运行CA证书更新命令全部
RUN_UPDATE_CA_CERTIFICATE_PATH/usr/sbin/update-ca-certificates当 RUN_UPDATE_CA_CERTIFICATE_AT_START 为true时,运行的CA证书更新命令/脚本路径全部

运行本地开发环境

我们建议使用 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 文件。

  1. 使用例如 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. (可选)安装 https://lld.llvm.org/ 5. 进入 frontend/ 目录:

  1. npm installnpm run generate-backend-client,然后 REMOTE=http://localhost:8000 npm run dev
  2. 您可能需要为 node 运行时设置额外的堆空间:export NODE_OPTIONS="--max-old-space-size=4096"
  3. 使用 mkdir frontend/build 创建空的 frontend/build 文件夹
  4. 进入 backend/ 目录:
    1. env DATABASE_URL= RUST_LOG=info cargo run
    2. 您可以指定任何要启用的功能标志,例如 cargo run --features python 以启用 Python 执行器。
  5. Windmill 应可通过 http://localhost:3000 访问

贡献者

版权

© 2023-2026 Windmill Labs, Inc.

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告