关于 frappe-ops-cloud
面向 Frappe Cloud 托管服务和自托管 Press 平台的参考技能,帮助团队与运维人员选择托管方式,并了解站点配置、部署及基础设施管理。
主要功能
- 01Frappe Cloud 与 Press 概念
- 02托管方案选择指南
- 03站点与 bench 运维
- 04应用部署与更新
- 05备份、监控和扩缩容
- 06自托管要求说明
适用场景
- 01选择托管或自托管方案
- 02配置站点与自定义域名
- 03向 bench 部署应用
- 04运维 Press 托管平台
安装
复制下面的命令,在终端中运行。
$
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 概念
| 概念 | 描述 |
|---|---|
| Site | 一个独立的 Frappe 实例,拥有自己的数据库、域名和应用 |
| Bench | 共享的运行环境,可托管一个或多个使用相同应用版本的站点 |
| Server | 运行一个或多个 Bench 的底层基础设施(VM) |
| Private Bench | 为单个客户专门配置的 Bench,提供完全控制权 |
| Shared Bench | 由 Frappe 管理、供多个站点共享的 Bench |
| Press | 为 Frappe Cloud 提供支持的开源平台(AGPL-3.0) |
| Agent | 每台服务器上的 Flask 应用,用于实现 Press 与站点之间的通信 |
决策树: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 | 自动配置和续订证书 |
| 监控 | 实时监控服务器和站点 |
| 基于角色的访问控制 | 为团队成员设置精细权限 |
| 账单 | 按日或按月订阅、钱包余额,以及多种付款方式 |
基础设施选项
| 选项 | 适用场景 |
|---|---|
| Shared Bench | 适用于小型站点,成本低;Bench 由 Frappe 管理 |
| Private Bench | 专属环境;可自定义应用版本和更新计划 |
| Dedicated Server | 适用于高流量或有合规要求的场景,可使用整台服务器 |
Frappe Cloud 控制面板
站点管理
控制面板集中管理所有站点操作:
- 创建站点 — 在 Shared Bench 或 Private Bench 上配置新站点
- 安装/移除应用 — 为站点添加或移除 Frappe 应用
- 备份 — 手动备份和计划备份,并可从备份恢复
- 域名管理 — 添加自定义域名并自动配置 SSL
- 站点配置 — 通过控制面板编辑
site_config.json - 监控 — 查看 CPU、内存、磁盘使用情况和请求日志
- 站点操作 — 迁移、更新、暂停、归档或转移站点
Bench 管理
- 创建 Bench — 设置 Shared Bench 或 Private 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
对于私有 Bench:更新由 Bench 所有者控制 — 未经批准绝不自动部署。
对于共享 Bench:Frappe 管理更新计划。
站点配置工作流
创建新站点
- 选择 Bench — 选择共享或私有 Bench
- 选择方案 — 选择资源分配(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 访问 | 仅限私有 Bench | 完全 | 完全 |
| 监控 | 内置 | 需自行设置 | 内置 |
| 支持 | 包含 | 仅限社区支持 | 仅限社区支持 |
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 | 控制面板前端 |
主要功能
- 多服务管理 — 配置和管理多个服务
- 站点生命周期 — 创建、更新、迁移、备份、恢复和归档站点
- Bench 管理 — 部署指定应用版本的 Bench
- 计费系统 — 订阅、开票、钱包额度、ERP 集成
- 市场 — 应用列表、定价、付款
- 基于角色的访问控制 — 针对每个团队和资源的细粒度权限
- 监控 — 实时指标和警报
适合自托管 Press 的情况
- 你需要为多个客户/租户托管 Frappe
- 你希望使用托管平台,但部署在自己的基础设施上
- 你需要完全掌控数据主权并满足法规要求
- 你希望将 Frappe 托管作为一项服务提供
不适合自托管 Press 的情况
- 单个站点绝不要自托管 Press — 直接使用 bench
- 绝不在没有专职 DevOps 能力的情况下自托管 Press
- 绝不低估运维开销 — Press 本身也需要维护
自托管要求
- 使用 Ubuntu 的专用服务器(裸机或 VM)
- 通配符域名的 DNS 管理
- 用于备份的对象存储(兼容 S3)
- 用于事务性邮件的 SMTP 服务
- 熟悉 Ansible、Docker 和 Frappe Framework
Frappe Cloud 的限制
在 Frappe Cloud 上无法执行的操作
- 安装系统级软件包(共享 bench 上没有 root 访问权限)
- 直接修改 Nginx/Supervisor 配置
- 访问原始数据库文件(只能通过控制面板使用 SQL)
- 在 Frappe 的作业队列之外运行长时间后台进程
- 使用非标准端口或协议
共享 Bench 的限制
- 无 SSH 访问权限
- 无法设置自定义环境变量(请改用 site_config.json)
- 与其他站点共享资源,性能可能有所不同
- 更新计划由 Frappe 控制(而非站点所有者)
相较于共享 Bench,私有 Bench 的优势
- 可通过 SSH 访问以进行调试
- 可设置自定义环境变量
- 可控的更新计划
- 专用资源
- 可自定义应用版本和分支
Frappe Cloud 最佳实践
站点配置
- 始终在导入大量数据前设置
maintenance_mode - 始终使用控制面板更改站点配置(不要直接编辑文件)
- 绝不在 Frappe Cloud 上禁用 scheduler,请改用
pause_scheduler - 始终先在暂存站点测试应用更新,再部署到生产环境
备份策略
- Frappe Cloud 会自动创建每日备份
- 始终在进行重大更改前手动创建备份
- 始终定期下载备份并存储在平台之外
- 绝不只依赖 Frappe Cloud 备份,应自行保留副本
性能
- 通过控制面板监控站点使用情况,在达到限制前升级套餐
- 对耗时操作使用后台作业(不要使用同步 API 调用)
- 为频繁访问的数据启用 Redis 缓存
- 通过数据库分析器工具查看慢查询日志
Frappe Cloud DevOps 工具
| 工具 | 用途 |
|---|---|
| 日志浏览器 | 查看应用日志、错误日志和调度器日志 |
| 数据库分析器 | 运行 SQL 查询、查看慢查询、分析索引 |
| Binlog 浏览器 | 查看数据库更改日志(二进制日志事件) |
| SSH 访问 | 访问私有 bench 的终端以进行调试 |
| 进程状态 | 查看正在运行的 worker、调度器状态和作业队列 |
分析集成
Frappe Cloud 站点可以连接到外部分析工具:
- Frappe Insights(原生)
- Power BI(通过 API)
- Metabase(通过数据库连接)
- 自定义控制面板(通过 Frappe API)
参考文件
| 文件 | 内容 |
|---|---|
| examples.md | 云部署工作流示例 |
| anti-patterns.md | 常见的 Frappe Cloud 错误及其修复方法 |
评论
支持 Markdown