# Windmill サーバー設定手順 現在の状態: - ディレクトリ: `/home/windmill/windmill` - Giteaから正常にpull完了 ## ステップ1: docker-compose.yml の置き換え ```bash cd /home/windmill/windmill # 現在のファイルをバックアップ cp docker-compose.yml docker-compose.yml.local.backup # 新しいdocker-compose.ymlを作成 # (ダウンロードしたファイルの内容をコピー) nano docker-compose.yml ``` または、ローカルで修正してgit pushする方法: ```bash # ローカルで cd /home/akira/develop/windmill cp /path/to/downloaded/docker-compose.yml . git add docker-compose.yml git commit -m "Update docker-compose.yml for server deployment" git push gitea main # サーバーで cd /home/windmill/windmill git pull origin main ``` ## ステップ2: .env ファイルの確認 ```bash cd /home/windmill/windmill # .envファイルを編集 nano .env ``` 以下の内容を確認・修正: ```bash WM_IMAGE=ghcr.io/windmill-labs/windmill:main DATABASE_URL=postgresql://postgres:YOUR_STRONG_PASSWORD@db:5432/windmill LOG_MAX_SIZE=20m LOG_MAX_FILE=10 ``` ⚠️ **重要**: `YOUR_STRONG_PASSWORD` を強力なパスワードに変更してください ## ステップ3: Traefikネットワークの確認 ```bash # traefik-netネットワークが存在するか確認 docker network ls | grep traefik-net # もし存在しない場合は作成 docker network create traefik-net ``` ## ステップ4: Caddyファイルの削除(不要) ```bash cd /home/windmill/windmill # Caddyfileは不要(Traefikを使用) rm Caddyfile # または mv Caddyfile Caddyfile.bak ``` ## ステップ5: sync_to_git.sh の更新 ```bash cd /home/windmill/windmill # 既存のsync_to_git.shを新しいバージョンに置き換え nano sync_to_git.sh # (ダウンロードした内容をコピー) chmod +x sync_to_git.sh ``` ## ステップ6: Git認証情報の設定 プッシュ時に認証が必要な場合、以下のいずれかを設定: ### 方法A: Git Credential Helper(推奨) ```bash cd /home/windmill/windmill # 認証情報を保存 git config credential.helper store # 一度手動でpush(パスワード/トークンを入力) git push origin main # Username: akira # Password: # 以降は認証情報が保存されている ``` ### 方法B: SSH鍵(より安全) ```bash # SSH鍵を生成 ssh-keygen -t ed25519 -C "windmill@keinafarm.net" # 公開鍵をGiteaに登録 cat ~/.ssh/id_ed25519.pub # Gitea → Settings → SSH/GPG Keys → Add Key # リモートURLをSSHに変更 cd /home/windmill/windmill git remote set-url origin git@gitea.keinafarm.net:akira/windmil.git ``` ## ステップ7: Windmillの起動 ```bash cd /home/windmill/windmill # コンテナを起動 docker-compose up -d # ログを確認 docker-compose logs -f windmill_server # 状態確認 docker-compose ps ``` ## ステップ8: 動作確認 ```bash # APIバージョンチェック curl -k https://windmill.keinafarm.net/api/version # ブラウザでアクセス # https://windmill.keinafarm.net ``` ## ステップ9: Windmill初期設定 1. ブラウザで `https://windmill.keinafarm.net` にアクセス 2. 初回セットアップウィザードに従う 3. 管理者アカウントを作成 4. Workspaceを作成(例: `admins`) ## ステップ10: Git同期スクリプトの設定(Windmill内) 1. Windmill UI → Scripts → New Script 2. 以下の内容でBashスクリプトを作成: ```bash #!/bin/bash set -x export WM_BASE_URL="http://windmill_server:8000" export WM_WORKSPACE="admins" # あなたのworkspace名に変更 export PATH=$HOME/.npm-global/bin:$PATH echo "=== START SYNC ===" if ! command -v wmill &> /dev/null; then npm install -g windmill-cli fi cd /workspace wmill sync pull --token "$WM_TOKEN" --base-url "$WM_BASE_URL" --workspace "$WM_WORKSPACE" --skip-variables --skip-secrets --skip-resources --yes --verbose || exit 1 git config --global --add safe.directory /workspace git config --global user.email "bot@example.com" git config --global user.name "Bot" git add . git commit -m "Auto-sync $(date)" || echo "No changes" git push origin main echo "=== END SYNC ===" ``` 3. Schedule → New Schedule - Cron: `*/15 * * * *` (15分ごと) - Script: 上記で作成したスクリプト 4. Variables → New Variable - `WM_TOKEN`: Windmill APIトークン(Settings → Tokensで作成) ## トラブルシューティング ### Traefikでアクセスできない ```bash # Traefikのログ確認 docker logs traefik # windmill_serverがtraefik-netに接続されているか docker network inspect traefik-net | grep windmill ``` ### データベース接続エラー ```bash # DBの状態確認 docker-compose ps db docker-compose logs db # 再起動 docker-compose restart db ``` ### Gitプッシュが失敗する ```bash # 認証情報の確認 cd /home/windmill/windmill git remote -v git config --list | grep credential # 手動でテスト git push origin main ``` ## 重要なコマンド ```bash # 再起動 docker-compose restart # ログ確認 docker-compose logs -f # 停止 docker-compose down # 完全削除(データも削除) docker-compose down -v ``` ## セキュリティチェック - [ ] `.env` のパスワードを変更 - [ ] Windmill管理者に強力なパスワード設定 - [ ] Git認証をSSH鍵またはcredential helperで設定 - [ ] Traefik Basic認証の追加検討(必要に応じて)