尝试一下 - 文档 - Discord - 中心 - 贡献者指南
Windmill 是完全开源的 (AGPLv3) ,Windmill Labs 提供专用实例和商业支持及许可证。
使用 Python、TypeScript、Go 或 Bash 定义解决特定任务的最小通用脚本。代码可以在提供的 Web IDE 中定义或与您自己的 GitHub 存储库同步(例如通过 VS Code 扩展):
我们在这里只提供 docker-compose 设置。对于更高级的设置,例如从源代码编译或在没有 postgres 超级用户的情况下使用,请参阅自托管文档。
Windmill 可以在单个命令中使用 3 个文件进行部署:(docker-compose.yml、Caddyfile 和 .env)。
确保 Docker 已启动,然后运行:
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 等等:)
默认的超级管理员用户是:[email protected]/changeme。
从那里,您可以按照设置应用程序并创建其他用户。
更多详细信息,请参阅自托管文档。
我们在以下位置发布 helm 图表:https://github.com/windmill-labs/windmill-helm-charts。
每个版本都包含 x86_64 的相应二进制文件。您可以使用以下一组 bash 命令简单地下载最新的windmill
二进制文件。
BINARY_NAME= ' windmill-amd64 ' # or windmill-ee-amd64 for the enterprise edition
LATEST_RELEASE= $( curl -L -s -H ' Accept: application/json ' https://github.com/windmill-labs/windmill/releases/latest )
LATEST_VERSION= $( echo $LATEST_RELEASE | sed -e ' s/.*"tag_name":"([^"]*)".*/1/ ' )
ARTIFACT_URL= " https://github.com/windmill-labs/windmill/releases/download/ $LATEST_VERSION / $BINARY_NAME "
wget " $ARTIFACT_URL " -O windmill
Windmill Community Edition 允许直接从超级管理员设置中的 UI 配置 OAuth、SSO(包括 Google Workspace SSO、Microsoft/Azure 和 Okta)。请注意,社区版的 SSO 用户数限制为 10 个。
请参阅文档。
要自行托管 Windmill,您必须遵守 AGPLv3 许可证的条款,您无需担心个人用途。对于商业用途,如果您不以任何方式向用户重新公开 Windmill 并且熟悉 AGPLv3,那么您应该没问题。
要将任何 Windmill 部件作为产品的功能重新向用户公开,或在 Windmill 之上构建功能,为了遵守 AGPLv3,您的产品必须是 AGPLv3,或者您必须获得商业许可证。如果您有任何疑问,请通过 [email protected] 联系我们。
此外,商业许可证还为您提供一名专门的工程师,将您当前的基础设施迁移到 Windmill,提供严格的 SLA 支持,以及我们的全局缓存同步,以实现从 10 多个节点到 200 多个节点的集群的高性能/无依赖性缓存缺失。
在 Windmill 中,集成称为资源和资源类型。每个资源都有一个资源类型,它定义资源需要实现的架构。
在自托管实例上,您可能希望从 WindmillHub 导入所有批准的资源类型。安装脚本将提示您每天自动同步。
环境变量名称 | 默认 | 描述 | API 服务器/工作人员/全部 |
---|---|---|---|
DATABASE_URL | Postgres 数据库 URL。 | 全部 | |
工人组 | 默认 | 工作人员所属的工作组并从中获取其配置 | 工人 |
模式 | 独立的 | 如果是二进制模式。可能的值:standalone、worker、server、agent | 全部 |
指标_地址 | 没有任何 | (仅限 ee)在 /metrics 路径中公开 Prometheus 指标的套接字地址。设置为“true”以在端口 8001 上公开它 | 全部 |
JSON_FMT | 错误的 | 以json格式输出日志,而不是logfmt | 全部 |
BASE_URL | http://本地主机:8000 | 公开公开以访问您的实例的基本 URL。被实例设置覆盖(如果有)。 | 服务器 |
ZOMBIE_JOB_TIMEOUT | 30 | 如果工作线程未发送有关处理作业的 ping,则作业被视为僵尸作业的超时时间(每台服务器每 30 秒检查一次僵尸作业) | 服务器 |
RESTART_ZOMBIE_JOBS | 真的 | 如果为 true,则僵尸作业将重新启动(使用相同的 uuid 和一些日志就地),如果为 false,则僵尸作业将失败 | 服务器 |
睡眠队列 | 50 | 上次检查数据库中的新作业之间休眠的毫秒数。它乘以 NUM_WORKERS,这样平均而言,对于一个工作实例,每 SLEEP_QUEUE 毫秒就有一次拉取。 | 工人 |
KEEP_JOB_DIR | 错误的 | 作业完成后保留作业目录。对于调试很有用。 | 工人 |
LICENSE_KEY(仅限 EE) | 没有任何 | Windmill 企业版在启动时检查许可证密钥 | 工人 |
SLACK_SIGNING_SECRET | 没有任何 | Slack 应用程序的签名秘密。请参阅 Slack 文档 | 服务器 |
COOKIE_DOMAIN | 没有任何 | cookie 的域。如果未设置,cookie将由浏览器根据完整来源设置 | 服务器 |
德诺路径 | /usr/bin/deno | deno 二进制文件的路径。 | 工人 |
PYTHON_路径 | /usr/local/bin/python3 | python 二进制文件的路径。 | 工人 |
路径 | /usr/bin/去 | go 二进制文件的路径。 | 工人 |
私有化 | 使用私有 go 模块的 GOPRIVATE 环境变量 | 工人 | |
代理服务器 | 要使用的 GOPROXY 环境变量 | 工人 | |
网络研究中心 | 使用私有 go 注册表的 netrc 内容 | 工人 | |
小路 | 没有任何 | 路径环境变量,通常是继承的 | 工人 |
家 | 没有任何 | 用于 Go 和 Bash 的主目录,通常是继承的 | 工人 |
数据库连接 | 50(服务器)/3(工作人员) | 数据库连接池最大连接数 | 全部 |
超级管理员_秘密 | 没有任何 | 让调用者充当虚拟超级管理员 [email protected] 的令牌 | 服务器 |
超时_等待_结果 | 20 | “run_wait_result”端点超时之前等待的秒数 | 工人 |
QUEUE_LIMIT_WAIT_RESULT | 没有任何 | 在立即拒绝“run_wait_result”端点中的请求之前队列中的最大作业数。优先于查询参数。如果没有指定,则没有限制。 | 工人 |
DENO_AUTH_TOKENS | 没有任何 | 自定义 DENO_AUTH_TOKENS 传递给工作人员以允许使用私有模块 | 工人 |
DISABLE_RESPONSE_LOGS | 错误的 | 禁用响应日志 | 服务器 |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | 真的 | 如果为 true,则只有超级管理员才能创建新工作区 | 服务器 |
有关所有运行选项,请参阅 ./frontend/README_DEV.md 文件。
使用尼克斯。
这将使用 https://app.windmill.dev 的后端,但使用您自己的前端并进行热代码重新加载。请注意,由于 CSRF 检查使用不同的身份验证提供商,您将需要使用用户名/密码登录。
在frontend/
目录中:
npm install
(或pnpm install
或yarn
)安装依赖项 npm run generate-backend-client
## on mac use
npm run generate-backend-client-mac
npm run dev
运行您的开发服务器http://localhost/
上使用有关所有运行选项,请参阅 ./frontend/README_DEV.md 文件。
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
宏/usr/bin/deno
和/usr/local/bin/python3
frontend/
:npm install
, npm run generate-backend-client
然后npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
否则后端将找不到frontend/build
文件夹并且无法编译。sudo caddy run --config Caddyfile
backend/
: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
上使用风车实验室公司 2023