轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
ghcr.io/windmill-labs/windmill-ee

ghcr.io/windmill-labs/windmill-ee:1.802

ghcr.iolinux/amd641.802大小: 1.42 GB更新于 2026年9月7日
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

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

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

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

https://xuanyuan.cloud/agents.md

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

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 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 图表)
  • 云服务提供商
  • OAuth、SSO 和 SMTP
  • 许可证
  • 集成
  • 环境变量
  • 运行本地开发环境
  • 仅前端
  • 后端+前端
  • 贡献指南
  • 贡献者
  • 版权

核心概念

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

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

  3. 在脚本和工作流之上构建复杂UI。

在Windmill之上构建您的整个基础设施!

实际脚本代码示例

//从npm导入任何依赖
import * as wmill from "windmill-client";
import * as cowsay from "cowsay@1.5.0";

// 填充类型,或使用+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 = "从默认参数推断的字符串类型",
e = { nested: "object" }
//f: wmill.Base64
) {
const email = process.env["WM_EMAIL"];
// 变量按路径进行权限控制
let variable = await wmill.getVariable("f/company-folder/my_secret");
const lastTimeRun = await wmill.getState();
// 日志会被打印并始终可查看
console.log(cowsay.say({ text: "hello " + email + " " + lastTimeRun }));
await wmill.setState(Date.now());

// 返回值会序列化为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。

架构

如何自托管

有关详细的设置选项,请参阅自托管文档。

Docker Compose

使用3个文件部署Windmill(docker-compose.yml、Caddyfile、.env):

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

docker compose up -d

访问 http://localhost - 默认凭据:admin@windmill.dev / changeme

使用外部数据库:在.env中设置DATABASE_URL指向您的托管Postgres(AWS RDS、GCP Cloud SQL、Azure、Neon等),并将数据库副本数设置为0。

Kubernetes(Helm 图表)

helm repo add windmill https://windmill-labs.github.io/windmill-helm-charts/
helm install windmill-chart windmill/windmill --namespace=windmill --create-namespace

云服务提供商

Windmill 可在 AWS (EKS/ECS)、GCP、Azure、Ubicloud、Fly.io、Render.com、Hetzner、Digital Ocean 等平台上运行。经验法则:每 1vCPU 和 1-2 GB RAM 配置 1 个工作节点。

环境变量名称默认值描述API 服务器/工作器/全部
DATABASE_URLPostgres 数据库 URL。全部
WORKER_GROUPdefault工作器所属的工作器组,从中拉取其配置工作器
MODEstandalone二进制文件的运行模式。可能的值:standalone(独立模式)、worker(工作器模式)、server(服务器模式)、agent(代理模式)全部
METRICS_ADDRNone(仅企业版)用于在 /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作业完成后保留作业目录。对调试有用。工作器
EXIT_AFTER_N_JOBSNone工作器进程执行指定数量的作业后退出,以便监控程序重启它,确保没有进程运行超过该数量的作业(但会完成已启动的同工作器流程中的步骤)。设置为 1 可实现每个作业一个进程;交给专用工作器的作业以及工作器自身的初始化和周期性脚本不计入此数量。不计入初始化和周期性脚本意味着它们在每次重启时都会重新运行:初始化脚本的运行时间会增加每批该数量作业的延迟,而周期性脚本无论其间隔如何,每次进程启动时都会触发一次。工作器页面中的工作器 shell 也会提前启动(而非原本需要的两分钟),因为即将被回收的进程无法保证存活那么久:会话的第一个命令最多等待 15 秒,后续命令立即执行。适用于通过进程生命周期而非 nsjail 隔离执行的部署;注意容器重启会重置进程而非容器文件系统,因此缓存和 /tmp 会保留。此时工作器名称将从主机名派生而非随机生成,因此重启后的工作器会保留其在...工作器
WORKER_SUFFIXNone固定工作器名称的最后部分(否则为随机生成),以便重启后的工作器在工作器列表中保留其行。仅当同一主机上运行多个同一工作器组的工作器进程时需要,因为名称派生自主机名:应为每个进程指定不同的值,绝不能让两个进程共享同一值。最多 64 个字母、数字和下划线;其他字符在启动时会被拒绝。工作器
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***工作器上的最小可用空间量。如果工作器可用空间不足,将发送严重警报。工作器
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 证书更新命令/脚本的路径全部
GOOGLE_APPLICATION_CREDENTIALSNone(仅企业版)GCP Pub/Sub 触发器的凭据文件,用于以实例身份而非通过 gcloud 资源(仅限工作区管理员)进行身份验证。应用默认凭据还会解析 gcloud 知名文件和 GCE 元数据服务器。工作负载身份联合文件支持 file、url 和 aws 凭据源;不支持 executable 源。服务器

运行本地开发环境

我们建议使用 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 install、npm 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 访问

贡献

目前,我们不寻求外部贡献。错误报告和功能请求仍然非常受欢迎,修复问题的小型、易于验证的 PR 仍会被接受。有关完整政策,请参见 CONTRIBUTING.md。

贡献者

版权

© 2023-2026 Windmill Labs, Inc.

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

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

轩辕镜像
镜像详情
...
ghcr.io/windmill-labs/windmill-ee
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱