# Windmill サーバー設定手順 (VPS移行版) 本番環境(VPS)へのデプロイ手順です。 既にTraefikが稼働している環境(`traefik-net` ネットワークが存在する環境)を前提としています。 ## 前提条件 - サーバー上でTraefikが稼働しており、`traefik-net` ネットワークが存在すること。 - ドメイン `windmill.keinafarm.net` がサーバーのIPに向けられていること。 ## ステップ1: リポジトリの準備 サーバー上の任意の場所(例: `/home/windmill/windmill`)にリポジトリをクローンします。 **重要**: WindmillのGit同期機能を使用するため、このディレクトリパスは重要です。 ```bash mkdir -p /home/windmill cd /home/windmill git clone https://gitea.keinafarm.net/akira/windmill.git windmill cd windmill ``` ## ステップ2: 環境変数の設定 `.env` ファイルを作成し、本番用の設定を行います。 ```bash 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連携済み)。 ```bash docker-compose up -d ``` ## ステップ4: Git同期用ワークフローのセットアップ Windmill上で「登録されたワークフローをGitに保存する」機能を有効にする手順です。 ### 4-1. ワークフロー定義の取り込み(初回のみ) **重要**: リポジトリ構成上、`wmill.yaml` は `workflows` ディレクトリ内にあります。 Windmillコンテナはデフォルトでルートの `/workspace` を見ていますが、実際のデータは `/workspace/workflows` にあるため、同期時にパスを指定する必要があります。 ```bash # Windmillサーバーコンテナに入り、wmillコマンドを実行 docker exec -it windmill_server /bin/bash # コンテナ内で実行 export WM_TOKEN="<ステップ5で取得するトークン>" # まだ無ければGUIで作成してから # 初回同期(workflowsディレクトリを指定して同期) cd /workspace/workflows wmill sync push --workspace admins --deploy --yes exit ``` ※ `admins` ワークスペースが存在しない場合は、GUIで作成するか、デフォルトのワークスペース名を確認してください。 ### 4-2. 認証情報の準備 Gitへのプッシュを行うため、Giteaのアクセストークンを含むリモートURLを設定します。 ```bash cd /home/windmill/windmill # Giteaのアクセストークンを含んだURLを設定(git pushのため) git remote set-url origin https://:@gitea.keinafarm.net/akira/windmill.git ``` ※ `` と `` は適切なものに置き換えてください。 ### 4-3. Variableの設定 WindmillのWeb画面(Variables)で、以下の変数を設定します。 - **WM_TOKEN**: WindmillのService Token(Settings -> Tokensで作成)。`Sync` 権限が必要です。 - **WM_WORKSPACE**: `admins` (または使用しているワークスペース名) ### 4-4. スケジュール実行の確認 `git_sync` フローが登録され、スケジュール設定(`git_sync.schedule.yaml`)も取り込まれていれば、自動的に同期が開始されます。Runsページで実行ログを確認してください。 ## トラブルシューティング ### 開発環境(ローカル)での起動 ローカルで起動する場合は、リネームされた `docker-compose-dev.yml` を使用します: ```bash docker-compose -f docker-compose-dev.yml up -d ``` ### ログ確認 ```bash docker-compose logs -f ```