5.7 KiB
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=disablePOSTGRES_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トークンの取得
- ブラウザで
https://windmill.keinafarm.netにログイン - 左下の Settings → Account をクリック
- Tokens セクションで Create token をクリック
- Label(例:
git-sync)を入力し、作成 - 表示されたトークンをコピーしておく(後のステップで使用)
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トークンの作成方法: Gitea(
https://gitea.keinafarm.net)にログイン → 右上アバター → Settings → Applications → Generate New Token
4-4. WM_TOKEN Variable の設定
WindmillのWeb画面で、git_sync フローが使用する変数を登録します。
- 左メニューの Variables をクリック
- + Variable をクリック
- 以下を入力:
- Path:
u/antigravity/wm_token - Value: 4-1で取得したWindmill APIトークン
- Is Secret: ✅ オン
- Path:
- Save をクリック
注意:
git_syncフローのスクリプト(a.sh)内で$WM_TOKENとして参照されます。 フローのInput設定で、この変数が正しく紐づけられていることを確認してください。
4-5. git_sync フローの手動実行テスト
- Windmill UI で
u/antigravity/git_syncフローを開く - Run ボタンで手動実行
- Runs ページで実行ログを確認
- 成功すれば、Giteaリポジトリに自動コミットが作成されているはず
4-6. スケジュール実行の確認
git_sync.schedule.yaml により、2分ごとに自動実行されるスケジュールが登録されています。
左メニューの Schedules から、スケジュールが有効になっていることを確認してください。
トラブルシューティング
ディスク上のファイルが古い内容に戻る
git_sync フローが wmill sync pull(DB→ディスク)を実行するため、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