試してみる - ドキュメント - Discord - Hub - 貢献者ガイド
Windmill は完全にオープンソース (AGPLv3)であり、Windmill Labs は専用インスタンスと商用サポートとライセンスを提供します。
特定のタスクを解決する最小限の汎用スクリプトを Python、TypeScript、Go、または Bash で定義します。コードは、提供された Web IDE で定義することも、独自の GitHub リポジトリと同期することもできます (VS Code 拡張機能などを介して)。
ここでは docker-compose セットアップのみを提供します。ソースからのコンパイルや postgres スーパー ユーザーなしでの使用など、より高度な設定については、セルフホストのドキュメントを参照してください。
Windmill は、1 つのコマンドで 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。 | 全て | |
WORKER_GROUP | デフォルト | ワーカーが所属し、その構成を取得するワーカー グループ | ワーカー |
モード | スタンドアロン | バイナリの場合のモード。可能な値: スタンドアロン、ワーカー、サーバー、エージェント | 全て |
METRICS_ADDR | なし | (ee のみ) /metrics パスで Prometheus メトリクスを公開するソケット アドレス。 「true」に設定すると、ポート 8001 で公開されます。 | 全て |
JSON_FMT | 間違い | logfmtではなくjson形式でログを出力する | 全て |
BASE_URL | http://ローカルホスト:8000 | インスタンスにアクセスするために公開されるベース URL。インスタンス設定がある場合は、その設定によって上書きされます。 | サーバ |
ZOMBIE_JOB_TIMEOUT | 30 | ワーカーがジョブの処理に関する ping を送信しなかった場合に、ジョブがゾンビであるとみなされるまでのタイムアウト (すべてのサーバーが 30 秒ごとにゾンビ ジョブをチェックします) | サーバ |
RESTART_ZOMBIE_JOBS | 真実 | trueの場合、ゾンビジョブが再起動されます(同じuuidといくつかのログを使用してインプレース)。falseの場合、ゾンビジョブは失敗します。 | サーバ |
スリープキュー | 50 | DB 内の新しいジョブを最後にチェックするまでにスリープするミリ秒数。これに NUM_WORKERS を掛けて、平均すると、1 つのワーカー インスタンスに対して SLEEP_QUEUE ミリ秒ごとに 1 回のプルが行われるようになります。 | ワーカー |
KEEP_JOB_DIR | 間違い | ジョブが完了した後もジョブ ディレクトリを保存します。デバッグに役立ちます。 | ワーカー |
LICENSE_KEY (EE のみ) | なし | Windmill Enterprise Edition の起動時にライセンス キーが確認される | ワーカー |
SLACK_SIGNING_SECRET | なし | Slack アプリの署名シークレット。 Slack のドキュメントを参照してください | サーバ |
クッキー_ドメイン | なし | Cookie のドメイン。設定されていない場合、Cookie は完全なオリジンに基づいてブラウザによって設定されます。 | サーバ |
デノパス | /usr/bin/deno | deno バイナリへのパス。 | ワーカー |
PYTHON_PATH | /usr/local/bin/python3 | Python バイナリへのパス。 | ワーカー |
GO_PATH | /usr/bin/go | go バイナリへのパス。 | ワーカー |
ゴプライベート | プライベート go モジュールを使用するための GOPRIVATE 環境変数 | ワーカー | |
ゴプロキシ | 使用する GOPROXY 環境変数 | ワーカー | |
NETRC | プライベート go レジストリを使用するための netrc コンテンツ | ワーカー | |
パス | なし | パス環境変数。通常は継承されます。 | ワーカー |
家 | なし | Go と Bash に使用するホーム ディレクトリ。通常は継承されます。 | ワーカー |
データベース接続 | 50 (サーバー)/3 (ワーカー) | データベース接続プール内の最大接続数 | 全て |
SUPERADMIN_SECRET | なし | 呼び出し元が仮想スーパー管理者として機能できるようにするトークン [email protected] | サーバ |
TIMEOUT_WAIT_RESULT | 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