mcpField
F
frappe-manager

frappe-manager

github.com/lubusinクラウド・DevOps69298 回インストール12 週間前に更新
リポジトリ

frappe-manager について

Frappe Managerは、FM CLIでDockerベースのFrappe開発環境を管理するスキルです。サイトの作成と運用、アプリのインストール、エージェント主導の開発手順を扱います。

主な機能

  1. 01選択したアプリを含むFrappeサイトの作成
  2. 02サイトの起動、停止、状態確認
  3. 03コンテナ内でのbenchコマンド実行
  4. 04fmxによるサービス管理
  5. 05再現可能な開発環境の運用

活用シーン

  1. 01ローカルのFrappe開発サイトの構築
  2. 02分離されたテスト環境の作成
  3. 03完全なbench環境なしでの試作
  4. 04AIエージェントによるFrappeアプリ開発

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lubusin/frappe-skills --skill frappe-manager

インストール後、Claude Code で/frappe-managerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
agent-workflow.md
bench-commands.md
bench.md
docker-config.md
fm-commands.md
frappe-manager.md
ssl-setup.md

詳細

Frappe Manager

Frappe Manager(FM)を使用して、Docker ベースの Frappe 開発環境を管理します。

使用するタイミング

  • ローカルの Frappe 開発環境をセットアップするとき
  • 分離されたテスト環境を作成するとき
  • エージェント主導の開発(バイブコーディング)ワークフローで使用するとき
  • bench を完全にセットアップせずに、すばやくプロトタイプを作成するとき
  • 複数のマシンで再現可能な環境を構築するとき

必要な入力

  • Docker がインストールされ、実行されていること
  • Python 3.11+ と pipx
  • サイト/bench 名
  • インストールするアプリ(frappe、erpnext、hrms、カスタム)
  • 環境タイプ(dev/prod)

手順

0) Frappe Manager をインストールする
# Install via pipx
pipx install frappe-manager

# Enable shell completion
fm --install-completion
1) サイトを作成する
# Basic site (frappe only)
fm create mysite

# Site with ERPNext
fm create mysite --apps erpnext:version-15

# Site with multiple apps
fm create mysite --apps erpnext --apps hrms --environment dev

# Production site with SSL
fm create example.com --apps erpnext --env prod --ssl letsencrypt
2) サイトを管理する
# List all sites
fm list

# Start/stop site
fm start mysite
fm stop mysite

# View site info
fm info mysite

# View logs (follow)
fm logs mysite -f

# Delete site
fm delete mysite
3) 開発ワークフロー
# Access shell inside container
fm shell mysite

# Inside container - common commands:
bench new-app my_custom_app
bench --site mysite install-app my_custom_app
bench --site mysite migrate
bench build --app my_custom_app
bench --site mysite run-tests --app my_custom_app

# Exit shell
exit

# Open in VSCode
fm code mysite

# Open with debugger
fm code mysite --debugger
4) エージェント主導の開発

Frappe アプリを開発する AI エージェントに最適です:

# 1. Setup: Create fresh environment
fm create testsite --apps erpnext:version-15 --environment dev
fm start testsite

# 2. Develop: Enter shell, create app
fm shell testsite
bench new-app my_app
bench --site testsite install-app my_app
# ... make code changes ...
exit

# 3. Test: Run tests
fm shell testsite
bench --site testsite run-tests --app my_app
exit

# 4. Verify: Check logs
fm logs testsite -f

# 5. Reset if needed: Start fresh
fm stop testsite
fm delete testsite
fm create testsite --apps erpnext:version-15 --environment dev
5) 内部サービスの管理(fmx)

コンテナ内では、サービスの制御に fmx を使用します:

fm shell mysite

fmx status      # Check service status
fmx restart     # Restart Frappe services
fmx start       # Start services
fmx stop        # Stop services

検証

  • http://mysite.localhost でサイトにアクセスできる
  • 管理者の認証情報(デフォルト:admin/admin)でログインできる
  • カスタムアプリがインストールされ、表示されている
  • コンテナ内でテストが正常に実行される
  • ログに重大なエラーが表示されていない

失敗時の対処/デバッグ

  • Docker が実行されていない:Docker デーモンを起動します
  • ポートの競合:別のサイト名を使用するか、ポート 80/443 を確認します
  • サイトにアクセスできない:fm list でステータスを確認し、fm start を試します
  • アプリをインストールできない:fm logs でエラーを確認します
  • 起動が遅い:初回実行時はイメージがダウンロードされるため、しばらくお待ちください

エスカレーション

参考資料

注意事項

  • 操作前に必ずバックアップする:大きな変更や更新の前に fm backup <site> を実行します
  • 名前付きサイトを使用する:汎用的な名前は避け、プロジェクトを識別できる説明的なサイト名を使用します
  • SSH アクセスを確認する:アプリのインストール前に、プライベートリポジトリ用の SSH キーが設定されていることを確認します
  • Docker のステータスを確認する:操作前に fm doctor を実行して、Docker と FM の状態を確認します
  • コマンドには fm shell を使用する:bench コマンドを実行する前に、必ずコンテナのシェルに入ります

よくある間違い

間違い失敗する理由修正方法
fm shell の外で bench コマンドを実行する「Command not found」と表示される、または別のサイトが対象になるまず必ず fm shell <site> を実行します
サイトのコンテキストが正しくない操作が別のサイトに影響するプロンプトに正しいサイトが表示されていることを確認し、bench --site <site> を使用します
再作成時にボリュームを引き継がないデータが失われるfm recreate --keep-volumes を使用するか、先にバックアップします
fm doctor を実行しない設定の問題が見過ごされるfm doctor を実行して問題を診断します
サイト URL に localhost を使用するDNS 名前解決の問題が発生するローカルアクセスには <site>.localhost 形式を使用します
再起動後に fm start を実行し忘れるサイトにアクセスできないfm start <site> または fm start --all を実行します

コメント