主要機能
テナント管理からサブスクリプション課金まで、SaaS運用に必要なすべてを統合。
Docker/Bench基盤プロビジョニング
Docker Compose + Frappe Bench アーキテクチャで、新規テナントをワンクリックでプロビジョニング。テナントごとに隔離された環境を自動構築。
Stripe サブスクリプション連携
Stripe Billing と直接連携。プラン変更、従量課金、請求書発行、支払い失敗時のリトライを自動化。PCI DSS準拠。
ヘルスチェック・監視
テナントごとのアプリケーション稼働状況、レスポンスタイム、エラー率を常時監視。異常検知時は自動アラートと自動復旧を実行。
自動バックアップ
テナントごとに定期自動バックアップを実行。データベース、ファイルストレージ、設定ファイルを暗号化してクラウドストレージに保存。
テナントライフサイクル管理
テナントの作成からサスペンド、削除まで、すべてのライフサイクルイベントを自動管理。
プロビジョニング
サインアップと同時にDockerコンテナ、データベース、Bench環境を自動構築。数分でテナント利用可能。
アクティベーション
ドメイン設定、SSL証明書、初期データの投入を自動実行。管理者アカウントを発行。
スケーリング
利用量に応じてリソースを自動スケール。ユーザー数、ストレージ、CPU/メモリの動的調整。
プラン変更
Stripe連携によるプランのアップグレード/ダウングレード。日割り計算と即時反映。
サスペンド
支払い失敗や違反検知時にテナントを一時停止。データは保持したままアクセスを制限。
デプロビジョニング
解約時にデータのエクスポートと環境のクリーンアップを自動実行。30日間のデータ保持期間。
アーキテクチャ
Docker + Frappe Bench
各テナントは Docker コンテナ内の独立した Frappe Bench として動作。データベース、ファイルストレージ、設定が完全に隔離され、テナント間のデータ漏洩を物理的に防止します。
-
コンテナ分離 ― テナントごとに独立したDockerコンテナで完全隔離
-
リバースプロキシ ― Nginx / TraefikによるテナントルーティングとSSL終端
-
データベース分離 ― テナントごとに専用のMariaDB/PostgreSQLインスタンス
-
自動DNS設定 ― サブドメインの自動作成とDNSレコードの管理
# Tenant: acme-corp services: frappe-bench: image: lifegence/bench:latest environment: - SITE_NAME=acme-corp.lg.app - DB_HOST=mariadb - STRIPE_KEY=${STRIPE_SECRET} volumes: - bench-data:/home/frappe networks: - tenant-network mariadb: image: mariadb:10.11 volumes: - db-data:/var/lib/mysql
DocType データ項目
SaaSマルチテナント管理を構成するDocTypeの全フィールド定義。
SaaS Tenant
テナントの作成・管理・ライフサイクルを制御
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| tenant_name | Data | * | テナント名(URL-safe slug) |
| site_name | Data | - | 自動生成サイト名 |
| bench_instance | Link | - | 割当先Benchインスタンス |
| status | Select | - | ステータス(Trial/Active/Suspended/Cancelled) |
| plan | Link | - | 適用プラン |
| trial_end_date | Date | - | トライアル終了日 |
| industry_package | Link | - | 業種パッケージ |
| admin_email | Data | * | 管理者メールアドレス |
| company_name | Data | - | 会社名 |
| max_users | Int | - | 最大ユーザー数 |
SaaS Plan
サブスクリプションプランの定義と料金設定
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| plan_name | Data | * | プラン名 |
| plan_code | Data | * | プランコード(一意) |
| max_users | Int | * | 最大ユーザー数 |
| monthly_price | Currency | - | 月額料金 |
| annual_price | Currency | - | 年額料金 |
| features | Text | - | 機能一覧 |
| is_active | Check | - | 有効フラグ |
SaaS Bench Instance
Benchサーバーインスタンスの管理と容量制御
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| bench_name | Data | * | Bench名 |
| server_url | Data | * | サーバーURL |
| status | Select | - | ステータス(Active/Maintenance/Retired) |
| max_tenants | Int | - | 最大テナント数 |
| current_tenants | Int | - | 現在のテナント数 |