233 lines
5.4 KiB
Markdown
233 lines
5.4 KiB
Markdown
# 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: <Gitea access token>
|
||
|
||
# 以降は認証情報が保存されている
|
||
```
|
||
|
||
### 方法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認証の追加検討(必要に応じて) |