diff --git a/SERVER_SETUP.md b/SERVER_SETUP.md index c069f67..c9ea688 100644 --- a/SERVER_SETUP.md +++ b/SERVER_SETUP.md @@ -45,6 +45,7 @@ docker-compose up -d ## ステップ4: Git同期用ワークフローのセットアップ Windmill上で「登録されたワークフローをGitに保存する」機能を有効にする手順です。 +`git_sync` フローが定期実行されると、Windmill DB上のスクリプト/フローの変更がGiteaリポジトリに自動コミット&プッシュされます。 ### 4-1. Windmill APIトークンの取得 @@ -52,12 +53,11 @@ Windmill上で「登録されたワークフローをGitに保存する」機能 2. 左下の **Settings** → **Account** をクリック 3. **Tokens** セクションで **Create token** をクリック 4. Label(例: `git-sync`)を入力し、作成 -5. 表示されたトークンをコピーしておく +5. 表示されたトークンをコピーしておく(後のステップで使用) ### 4-2. ワークフロー定義の取り込み(初回のみ) -リポジトリの `workflows/` ディレクトリにある定義ファイルをWindmill DBに取り込みます。 -`wmill.yaml` は `workflows/` 内にあるため、コンテナ内では `/workspace/workflows` で実行します。 +リポジトリの `workflows/` にある定義ファイルをWindmill DBに取り込みます。 ```bash # Windmillサーバーコンテナに入る @@ -66,7 +66,7 @@ docker exec -it windmill_server /bin/bash # コンテナ内で実行:windmill-cli をインストール npm install -g windmill-cli -# workflowsディレクトリに移動して sync push +# wmill.yamlがあるディレクトリに移動して sync push cd /workspace/workflows wmill sync push \ --token "<4-1で取得したトークン>" \ @@ -76,31 +76,75 @@ wmill sync push \ exit ``` -※ `admins` ワークスペースが存在しない場合は、GUIで先に作成してください。 -### 4-3. 認証情報の準備 -Gitへのプッシュを行うため、Giteaのアクセストークンを含むリモートURLを設定します。 +> **注意**: `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のアクセストークンを含めます。 ```bash -cd /home/windmill/windmill -# Giteaのアクセストークンを含んだURLを設定(git pushのため) -git remote set-url origin https://:@gitea.keinafarm.net/akira/windmill.git +# サーバーのホスト側で実行 +cd ~/windmill + +# 現在のリモートURLを確認 +git remote -v + +# Giteaのアクセストークンを含んだURLに変更 +git remote set-url origin https://:@gitea.keinafarm.net/akira/windmill.git ``` -※ `` と `` は適切なものに置き換えてください。 -### 4-4. Variableの設定 -WindmillのWeb画面(Variables)で、以下の変数を設定します。 -- **WM_TOKEN**: WindmillのService Token(Settings -> Tokensで作成)。`Sync` 権限が必要です。 -- **WM_WORKSPACE**: `admins` (または使用しているワークスペース名) +> **Giteaトークンの作成方法**: Gitea(`https://gitea.keinafarm.net`)にログイン → +> 右上アバター → Settings → Applications → Generate New Token -### 4-5. スケジュール実行の確認 -`git_sync` フローが登録され、スケジュール設定(`git_sync.schedule.yaml`)も取り込まれていれば、自動的に同期が開始されます。Runsページで実行ログを確認してください。 +### 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** から、スケジュールが有効になっていることを確認してください。 + +--- ## トラブルシューティング -### 開発環境(ローカル)での起動 -ローカルで起動する場合は、リネームされた `docker-compose-dev.yml` を使用します: +### ディスク上のファイルが古い内容に戻る +`git_sync` フローが `wmill sync pull`(DB→ディスク)を実行するため、UIで修正した内容がディスクに上書きされます。 +スクリプトの修正は **Windmill UI上で直接編集** するのが確実です。 +### git push が失敗する +```bash +# サーバー上でリモートURLにトークンが含まれているか確認 +cd ~/windmill +git remote -v +# https://:@gitea.keinafarm.net/... の形式であること +``` + +### 開発環境(ローカル)での起動 +ローカルで起動する場合は `docker-compose-dev.yml` を使用します: ```bash docker-compose -f docker-compose-dev.yml up -d ``` @@ -108,4 +152,4 @@ docker-compose -f docker-compose-dev.yml up -d ### ログ確認 ```bash docker-compose logs -f -``` \ No newline at end of file +```