Files
windmill/SERVER_SETUP.md
2026-02-19 16:13:43 +09:00

5.7 KiB
Raw Blame History

Windmill サーバー設定手順 (VPS移行版)

本番環境VPSへのデプロイ手順です。 既にTraefikが稼働している環境traefik-net ネットワークが存在する環境)を前提としています。

前提条件

  • サーバー上でTraefikが稼働しており、traefik-net ネットワークが存在すること。
  • ドメイン windmill.keinafarm.net がサーバーのIPに向けられていること。

ステップ1: リポジトリの準備

サーバー上の任意の場所(例: /home/windmill/windmill)にリポジトリをクローンします。 重要: WindmillのGit同期機能を使用するため、このディレクトリパスは重要です。

mkdir -p /home/windmill
cd /home/windmill
git clone https://gitea.keinafarm.net/akira/windmill.git windmill
cd windmill

ステップ2: 環境変数の設定

.env ファイルを作成し、本番用の設定を行います。

cp .env .env.production
nano .env

以下の内容を確認・修正してください:

  • DATABASE_URL: postgres://postgres:あなたの強力なパスワード@db/windmill?sslmode=disable
  • POSTGRES_PASSWORD: 上記と同じパスワード
  • WM_IMAGE: ghcr.io/windmill-labs/windmill:main

ステップ3: 起動

docker-compose.yml は本番用に構成されていますTraefik連携済み

docker-compose up -d

ステップ4: Git同期用ワークフローのセットアップ

Windmill上で「登録されたワークフローをGitに保存する」機能を有効にする手順です。 git_sync フローが定期実行されると、Windmill DB上のスクリプト/フローの変更がGiteaリポジトリに自動コミットプッシュされます。

4-1. Windmill APIトークンの取得

  1. ブラウザで https://windmill.keinafarm.net にログイン
  2. 左下の SettingsAccount をクリック
  3. Tokens セクションで Create token をクリック
  4. Label例: git-sync)を入力し、作成
  5. 表示されたトークンをコピーしておく(後のステップで使用)

4-2. ワークフロー定義の取り込み(初回のみ)

リポジトリの workflows/ にある定義ファイルをWindmill DBに取り込みます。

# Windmillサーバーコンテナに入る
docker exec -it windmill_server /bin/bash

# コンテナ内で実行windmill-cli をインストール
npm install -g windmill-cli

# wmill.yamlがあるディレクトリに移動して sync push
cd /workspace/workflows
wmill sync push \
  --token "<4-1で取得したトークン>" \
  --base-url "http://localhost:8000" \
  --workspace admins \
  --yes

exit

注意: wmill sync push はディスク→DBへの反映です。 逆に wmill sync pull はDB→ディスクへの反映です。 スケジュールされた git_sync フローが sync pull を実行するため、 UIで直接スクリプトを修正した場合、次回の sync pull で正しくディスクにも反映されます。

4-3. Gitea認証情報の設定git push用

git_sync フローが Gitea へ git push できるよう、サーバー上のリモートURLにGiteaのアクセストークンを含めます。

# サーバーのホスト側で実行
cd ~/windmill

# 現在のリモートURLを確認
git remote -v

# Giteaのアクセストークンを含んだURLに変更
git remote set-url origin https://<username>:<giteaトークン>@gitea.keinafarm.net/akira/windmill.git

Giteaトークンの作成方法: Giteahttps://gitea.keinafarm.net)にログイン → 右上アバター → Settings → Applications → Generate New Token

4-4. WM_TOKEN Variable の設定

WindmillのWeb画面で、git_sync フローが使用する変数を登録します。

  1. 左メニューの Variables をクリック
  2. + Variable をクリック
  3. 以下を入力:
    • Path: u/antigravity/wm_token
    • Value: 4-1で取得したWindmill APIトークン
    • Is Secret: オン
  4. Save をクリック

注意: git_sync フローのスクリプト(a.sh)内で $WM_TOKEN として参照されます。 フローのInput設定で、この変数が正しく紐づけられていることを確認してください。

4-5. git_sync フローの手動実行テスト

  1. Windmill UI で u/antigravity/git_sync フローを開く
  2. Run ボタンで手動実行
  3. Runs ページで実行ログを確認
  4. 成功すれば、Giteaリポジトリに自動コミットが作成されているはず

4-6. スケジュール実行の確認

git_sync.schedule.yaml により、2分ごとに自動実行されるスケジュールが登録されています。 左メニューの Schedules から、スケジュールが有効になっていることを確認してください。


トラブルシューティング

ディスク上のファイルが古い内容に戻る

git_sync フローが wmill sync pullDB→ディスクを実行するため、UIで修正した内容がディスクに上書きされます。 スクリプトの修正は Windmill UI上で直接編集 するのが確実です。

git push が失敗する

# サーバー上でリモートURLにトークンが含まれているか確認
cd ~/windmill
git remote -v
# https://<user>:<token>@gitea.keinafarm.net/... の形式であること

開発環境(ローカル)での起動

ローカルで起動する場合は docker-compose-dev.yml を使用します:

docker-compose -f docker-compose-dev.yml up -d

ログ確認

docker-compose logs -f