frappe-ops-cloud について
Frappe Cloudのマネージドホスティングと、セルフホスト型Pressのリファレンススキルです。チームや運用担当者が方式を選び、サイト構築やデプロイ、インフラ管理を把握できます。
主な機能
- 01Frappe CloudとPressの概念
- 02ホスティング方式の選択ガイド
- 03サイトとbenchの運用
- 04アプリのデプロイと更新
- 05バックアップ、監視、スケーリング
- 06セルフホスト要件の説明
活用シーン
- 01マネージドかセルフホストかの選択
- 02サイトとカスタムドメインの構築
- 03benchへのアプリのデプロイ
- 04Pressホスティング基盤の運用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ impertio-studio/ frappe_claude_skill_package --skill frappe-ops-cloudインストール後、Claude Code で/frappe-ops-cloudを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/.gitkeepanti-patterns.mdexamples.md詳細
Frappe Cloud と Press
Frappe Cloud のマネージドホスティングと、Press のセルフホスト可能な代替手段に関する完全なリファレンスです。
クイックリファレンス:Frappe Cloud の概念
| 概念 | 説明 |
|---|---|
| サイト | 独自のデータベース、ドメイン、アプリを持つ単一の Frappe インスタンスです |
| Bench | 同じアプリバージョンを使用する 1 つ以上のサイトをホストする共有ランタイム環境です |
| サーバー | 1 つ以上の Bench を実行する基盤インフラ(VM)です |
| プライベート Bench | 単一の顧客専用で、完全な制御が可能な Bench です |
| 共有 Bench | 複数のサイトで共有する、Frappe が管理する Bench です |
| Press | Frappe Cloud を支えるオープンソースプラットフォーム(AGPL-3.0)です |
| エージェント | Press とサイト間の通信を可能にする、各サーバー上の Flask アプリケーションです |
判断ツリー:Frappe Cloud とセルフホスト
Choosing hosting strategy:
├── Small team, want zero ops overhead?
│ └── Frappe Cloud (Shared Bench) — fastest time to production
├── Need custom server configuration?
│ ├── Budget for managed infra? → Frappe Cloud (Private Bench)
│ └── Want full control? → Self-hosted with bench
├── Need to host Frappe for multiple clients?
│ ├── Want managed platform? → Frappe Cloud
│ └── Want own platform? → Self-hosted Press
├── Regulatory/compliance — data must stay on-premises?
│ └── Self-hosted (bench or Press)
└── Development/testing environment?
├── Quick prototype → Frappe Cloud (free trial)
└── Long-term dev → Local bench installation
Frappe Cloud の概要
Frappe Cloud は、Frappe スタック向けの完全マネージド型ホスティングプラットフォームです。サーバーのプロビジョニング、バックアップ、アップデート、モニタリング、スケーリングを処理します。
主な機能
| 機能 | 詳細 |
|---|---|
| 自動バックアップ | 保持ポリシーに基づく、スケジュール設定された毎日のバックアップです |
| 自動アップデート | Frappe アプリ向けのマネージドアップデートサイクルです |
| スケーリング | ダウンタイムなしでの水平および垂直スケーリングです |
| マルチテナント | Bench ごとに複数の独立したサイトを運用できます |
| SSL/TLS | 証明書の自動プロビジョニングと更新です |
| モニタリング | サーバーとサイトのリアルタイムモニタリングです |
| ロールベースのアクセス制御 | チームメンバー向けのきめ細かな権限設定です |
| 請求 | 日次/月次のサブスクリプション、ウォレットクレジット、複数の支払い方法に対応します |
インフラストラクチャの選択肢
| 選択肢 | 用途 |
|---|---|
| 共有 Bench | 小規模サイトに適した低コストの選択肢です。Bench は Frappe が管理します |
| プライベート Bench | 専用環境です。カスタムアプリバージョンやアップデートスケジュールを設定できます |
| 専用サーバー | 高トラフィックまたはコンプライアンス要件に対応する、サーバー全体を専有する選択肢です |
Frappe Cloud ダッシュボード
サイト管理
ダッシュボードでは、すべてのサイト操作を一元管理できます。
- サイトの作成 — 共有またはプライベートの Bench に新しいサイトをプロビジョニングします
- アプリのインストール/削除 — サイトに Frappe アプリを追加または削除します
- バックアップ — 手動およびスケジュール設定されたバックアップを作成し、バックアップから復元します
- ドメイン管理 — SSL の自動設定に対応したカスタムドメインを追加します
- サイト設定 — ダッシュボードから
site_config.jsonを編集します - モニタリング — CPU、メモリ、ディスク使用量、リクエストログを確認します
- サイトの操作 — サイトを移行、更新、一時停止、アーカイブ、または移管します
Bench 管理
- Bench の作成 — 共有またはプライベートの Bench を設定します
- アプリ管理 — アプリとそのバージョン/ブランチを選択します
- アップデートのスケジュール設定 — Bench がアップデートを受け取るタイミングを制御します
- 環境変数 — カスタム環境変数を設定します
- SSH アクセス — SSH 経由で Bench に接続してデバッグします
- ログブラウザー — アプリケーションログとエラーログを確認します
- データベースアクセス — ダッシュボード経由でデータベースにクエリを実行します
サーバー管理
- サーバーのプロビジョニング — 複数のクラウドプロバイダーにまたがってサーバーを作成します
- リソースのスケーリング — CPU、メモリ、ストレージをアップグレードします
- ストレージアドオン — 追加のストレージボリュームを接続します
- サーバースナップショット — サーバースナップショットを作成および復元します
Frappe Cloud へのアプリのデプロイ
カスタムアプリの追加
- Frappe Cloud ダッシュボードで Apps に移動します
- Add App をクリックし、GitHub リポジトリの URL を入力します
- デプロイするブランチを選択します
- 必要に応じてビルド設定を行います
- アプリは、互換性のある Bench 内のサイトにインストールできるようになります
アプリマーケットプレイス
Frappe Cloud には、開発者が以下の操作を行えるマーケットプレイスがあります。
- 説明と価格を添えてアプリを掲載する
- 互換性要件(Frappe のバージョン、依存関係)を設定する
- 価格モデル(無料、買い切り、サブスクリプション)を設定する
- 商用アプリの収益支払いを管理する
- インストール数と利用状況の分析を追跡する
デプロイワークフロー
Developer pushes code → Frappe Cloud detects update →
Bench rebuild triggered → Assets compiled →
Sites migrated → New version live
プライベートベンチの場合:更新はベンチの所有者が管理します。承認なしで自動デプロイされることは絶対にありません。
共有ベンチの場合:更新スケジュールは Frappe が管理します。
サイトのプロビジョニングワークフロー
新しいサイトの作成
- ベンチを選択 — 共有ベンチまたはプライベートベンチを選択します
- プランを選択 — リソースの割り当て(CPU、メモリ、ストレージ)を選択します
- アプリを設定 — インストールするアプリを選択します
- ドメインを設定 —
*.frappe.cloudサブドメインまたはカスタムドメインを使用します - 作成 — Frappe Cloud がサイトをプロビジョニングします(通常 5 分以内)
カスタムドメインの設定
- ダッシュボードでサイトの Domains に移動します
- カスタムドメイン(例:
erp.example.com)を追加します - DNS を設定します。Frappe Cloud プロキシを指す CNAME レコードを追加します
- Frappe Cloud が DNS を検証し、SSL 証明書を自動的にプロビジョニングします
- SSL が機能することを期待する前に、DNS の伝播を必ず待ちます(最大 48 時間)
重要なルール
- カスタムドメインには必ず CNAME レコードを使用します(A レコードは使用しません)
- DNS を Frappe Cloud に移管してはいけません。CNAME レコードのみを追加します
- 本番トラフィックを切り替える前に、SSL が有効であることを必ず確認します
- カスタムドメインの SSL には Let's Encrypt を使用します。有効期限前に自動更新されます
Frappe Cloud とセルフホストの比較
| 項目 | Frappe Cloud | セルフホスト(bench) | セルフホスト(Press) |
|---|---|---|---|
| セットアップ時間 | 数分 | 数時間 | 数日 |
| サーバー管理 | 管理対象 | 自分で管理 | 自分で管理 |
| バックアップ | 自動 | 手動/cron | 自動 |
| 更新 | 管理されたスケジュール | bench update | Press 経由で管理 |
| SSL 証明書 | 自動 | 手動/certbot | 自動 |
| スケーリング | ダッシュボードのボタン | 手動 | ダッシュボード |
| マルチテナント | 組み込み | DNS マルチテナント | 組み込み |
| コスト | サブスクリプション | インフラのみ | インフラのみ |
| カスタムサーバー設定 | 制限あり | 完全な制御 | 完全な制御 |
| データ主権 | Frappe のインフラ | 自社のインフラ | 自社のインフラ |
| SSH アクセス | プライベートベンチのみ | 全般 | 全般 |
| モニタリング | 組み込み | 自分で設定 | 組み込み |
| サポート | 含まれる | コミュニティのみ | コミュニティのみ |
Press:セルフホスト型 Frappe Cloud
Press とは?
Press は、Frappe Cloud を支えるオープンソースプラットフォーム(AGPL-3.0)です。組織は Press をセルフホストして、Frappe アプリケーション向けの独自のマネージドホスティングプラットフォームを構築できます。
GitHub:https://github.com/frappe/press
アーキテクチャ
| コンポーネント | テクノロジー | 役割 |
|---|---|---|
| Press | Frappe Framework | プラットフォーム管理、課金、ダッシュボード |
| Agent | Flask | サーバーとサイト間の通信 |
| Docker | コンテナランタイム | アプリのパッケージ化とデプロイ |
| Ansible | 自動化 | サーバーのプロビジョニングと設定 |
| Frappe UI | Vue.js | ダッシュボードのフロントエンド |
主な機能
- 複数サーバーの管理 — 複数のサーバーをプロビジョニングして管理します
- サイトのライフサイクル管理 — サイトの作成、更新、移行、バックアップ、復元、アーカイブを行います
- ベンチ管理 — 特定のアプリバージョンを含むベンチをデプロイします
- 課金システム — サブスクリプション、請求書、ウォレットクレジット、ERP 連携
- マーケットプレイス — アプリの掲載、価格設定、支払い
- ロールベースのアクセス制御 — チームやリソースごとのきめ細かな権限設定
- モニタリング — リアルタイムのメトリクスとアラート
Press をセルフホストする場合
- 複数のクライアント/テナント向けに Frappe をホストする必要がある
- マネージドプラットフォームを利用したいが、インフラは自社で運用したい
- 完全なデータ主権と規制への準拠が必要である
- Frappe ホスティングをサービスとして提供したい
Press をセルフホストしない場合
- 単一サイトのために Press をセルフホストしてはいけません。bench を直接使用します
- 専任の DevOps 対応能力がない状態で Press をセルフホストしてはいけません
- 運用上の負担を過小評価してはいけません。Press 自体にもメンテナンスが必要です
セルフホスティングの要件
- Ubuntu を搭載した専用サーバー(ベアメタルまたは VM)
- ワイルドカードドメインの DNS 管理
- バックアップ用のオブジェクトストレージ(S3 互換)
- トランザクションメール用の SMTP サービス
- Ansible、Docker、Frappe Framework に関する知識
Frappe Cloud の制限事項
Frappe Cloud でできないこと
- システムレベルのパッケージをインストールすること(共有ベンチでは root アクセスがありません)
- Nginx/Supervisor の設定を直接変更すること
- 生のデータベースファイルにアクセスすること(ダッシュボード経由の SQL アクセスのみ)
- Frappe のジョブキュー以外で、長時間実行されるバックグラウンドプロセスを実行すること
- 標準以外のポートやプロトコルを使用すること
共有ベンチの制限事項
- SSH アクセスなし
- カスタム環境変数なし(代わりに site_config.json を使用)
- 他のサイトとのリソース共有(パフォーマンスは変動する場合があります)
- Frappe が管理するアップデートスケジュール(サイト所有者は変更できません)
共有ベンチに対するプライベートベンチの利点
- デバッグ用の SSH アクセス
- カスタム環境変数
- 管理可能なアップデートスケジュール
- 専用リソース
- カスタムアプリのバージョンとブランチ
Frappe Cloud のベストプラクティス
サイト設定
- 大規模なデータインポートの前に、必ず
maintenance_modeを設定してください - サイト設定の変更には、必ずダッシュボードを使用してください(ファイルを直接編集しないでください)
- Frappe Cloud ではスケジューラーを絶対に無効にしないでください。代わりに
pause_schedulerを使用してください - 本番環境に適用する前に、必ずステージングサイトでアプリのアップデートをテストしてください
バックアップ戦略
- Frappe Cloud では毎日の自動バックアップが作成されます
- 大規模な変更の前に、必ず手動でバックアップを作成してください
- 必ず定期的にバックアップをダウンロードし、プラットフォーム外に保存してください
- Frappe Cloud のバックアップだけに絶対に頼らず、自分でコピーを保管してください
パフォーマンス
- ダッシュボードでサイトの使用状況を監視し、上限に達する前にプランをアップグレードしてください
- 負荷の高い処理にはバックグラウンドジョブを使用してください(同期 API 呼び出しは使用しないでください)
- 頻繁にアクセスされるデータには Redis キャッシュを有効にしてください
- データベースアナライザーツールで低速クエリログを確認してください
Frappe Cloud の DevOps ツール
| ツール | 用途 |
|---|---|
| ログブラウザー | アプリケーションログ、エラーログ、スケジューラーログを表示します |
| データベースアナライザー | SQL クエリを実行し、低速クエリを表示して、インデックスを分析します |
| Binlog ブラウザー | データベースの変更ログ(バイナリログイベント)を表示します |
| SSH アクセス | デバッグ用にプライベートベンチのターミナルへアクセスします |
| プロセスステータス | 実行中のワーカー、スケジューラーの状態、ジョブキューを表示します |
アナリティクス連携
Frappe Cloud のサイトは、外部のアナリティクスツールに接続できます。
- Frappe Insights(ネイティブ)
- Power BI(API 経由)
- Metabase(データベース接続経由)
- カスタムダッシュボード(Frappe API 経由)
参考ファイル
| ファイル | 内容 |
|---|---|
| examples.md | クラウドデプロイのワークフロー例 |
| anti-patterns.md | Frappe Cloud でよくある間違いと修正方法 |
コメント
Markdown 対応