English {#english}
Install prego_saas_app on the Control Plane (provisioner) Frappe/ERPNext site and configure provisioning, Stripe webhooks, and Usage submission. Prerequisites: Frappe v16 bench with ERPNext (and optionally HRMS/CRM). Steps: bench get-app prego_saas_app, bench install-app, set provisioner site name and env. Full details: see Korean section below.
한국어 {#korean}
prego-saas-app 프로비저너 사이트 설치
목적: Control Plane(프로비저너)용 Frappe/ERPNext 사이트에 prego_saas_app 앱을 설치하고, 프로비저닝·Stripe·Usage 제출이 동작하도록 최소 설정을 한다.
전제
- Frappe v16 bench 환경이 있고, ERPNext(및 필요 시 HRMS·CRM)가 이미 설치된 사이트가 있음.
- 해당 사이트를 프로비저너 사이트로 사용할 것(테넌트 생성 API, Stripe 웹훅, Usage → Stripe 제출 등).
1. 앱 설치
cd /path/to/benchbench get-app https://github.com/Pregoi/prego-saas-appbench --site <provisioner_site> install-app prego_saas_appprovisioner_site: 프로비저너로 쓸 사이트 이름(예:provision.prego.internal).
2. 프로비저너 사이트 지정
프로비저닝 API·Stripe 웹훅은 프로비저너 사이트에서만 허용된다. 해당 사이트의 site_config.json에 다음 중 하나로 프로비저너 목록을 둔다.
- 단일 사이트:
prego_provisioner_sites없이 사용 시, 기본값provision.prego.internal이 프로비저너로 간주된다. - 여러 사이트:
prego_provisioner_sites를 JSON 배열로 설정.
bench --site <provisioner_site> set-config prego_provisioner_sites '["provision.prego.internal","backup.provisioner"]'(실제로 프로비저너로 쓰는 사이트 이름만 넣으면 된다.)
3. (선택) 테넌트 생성 시 bench new-site
create_tenant API 호출 시 bench new-site까지 실행하려면, 프로비저너 사이트에서 다음을 설정한다.
bench --site <provisioner_site> set-config BENCH_DIR /path/to/benchbench --site <provisioner_site> set-config MARIADB_ROOT_PASSWORD '...'- 보안:
MARIADB_ROOT_PASSWORD는 민감 정보이므로 환경 변수나 Secrets 관리에 맞게 처리 권장.
4. Stripe(Phase 6·8)
결제·구독·Usage 제출을 쓰려면 프로비저너 사이트에 Stripe 설정을 둔다.
bench --site <provisioner_site> set-config stripe_secret_key 'sk_...'bench --site <provisioner_site> set-config stripe_webhook_secret 'whsec_...'# Plan별 Price ID (또는 stripe_price_ids JSON)bench --site <provisioner_site> set-config stripe_price_basic 'price_xxx'bench --site <provisioner_site> set-config stripe_price_pro 'price_yyy'bench --site <provisioner_site> set-config stripe_price_enterprise 'price_zzz'- 웹훅 URL:
https://<provisioner_domain>/api/method/prego_saas_app.api.stripe_webhook.webhook - Usage 제출: 15분마다 스케줄러가
submit_usage_to_stripe()를 실행한다. 모든 테넌트의 Prego Usage Aggregation을 볼 수 있는 사이트(보통 프로비저너)에서 스케줄러가 돌아야 한다.
5. 설치 후 확인
- Workspace: 로그인 후 Prego Control Plane 워크스페이스가 보이는지 확인(Phase 7, after_install로 생성됨).
- API:
- Health:
GET /api/method/prego_saas_app.api.health_check - 프로비저닝:
POST /api/method/prego_saas_app.api.provisioning.create_tenant(프로비저너 사이트만).
- Health:
- Stripe: 체크아웃 세션 생성·웹훅 수신은 prego-saas-app README Phase 6 참고.
참고
- 앱 기능·Phase 요약: Pregoi/prego-saas-app 레포 README.
- 이미지 빌드 트리거: prego-saas-app-trigger-prego-docker.
- 이미지 배포: prego-docker-image-deploy.