mcpField
F
frappe-ops-cloud

frappe-ops-cloud

github.com/impertio-studio云与 DevOps198109 次安装30 周前更新
代码仓库

关于 frappe-ops-cloud

面向 Frappe Cloud 托管服务和自托管 Press 平台的参考技能,帮助团队与运维人员选择托管方式,并了解站点配置、部署及基础设施管理。

主要功能

  1. 01Frappe Cloud 与 Press 概念
  2. 02托管方案选择指南
  3. 03站点与 bench 运维
  4. 04应用部署与更新
  5. 05备份、监控和扩缩容
  6. 06自托管要求说明

适用场景

  1. 01选择托管或自托管方案
  2. 02配置站点与自定义域名
  3. 03向 bench 部署应用
  4. 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/
.gitkeep
anti-patterns.md
examples.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 上部署应用

添加自定义应用
  1. 前往 Frappe Cloud 控制面板中的 Apps
  2. 点击 Add App,并提供 GitHub 仓库 URL
  3. 选择要部署的分支
  4. 根据需要配置构建设置
  5. 应用将可供兼容 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 管理更新计划。


站点配置工作流

创建新站点
  1. 选择 Bench — 选择共享或私有 Bench
  2. 选择方案 — 选择资源分配(CPU、内存、存储)
  3. 配置应用 — 选择要安装的应用
  4. 设置域名 — 使用 *.frappe.cloud 子域名或自定义域名
  5. 创建 — Frappe Cloud 配置站点(通常少于 5 分钟)
设置自定义域名
  1. 在控制面板中进入站点的 Domains
  2. 添加自定义域名(例如,erp.example.com)
  3. 配置 DNS:添加一条指向 Frappe Cloud 代理的 CNAME 记录
  4. Frappe Cloud 会验证 DNS 并自动配置 SSL 证书
  5. 在期待 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

架构
组件技术作用
PressFrappe Framework平台管理、计费、控制面板
AgentFlask服务与站点之间的通信
Docker容器运行时应用打包和部署
Ansible自动化服务配置和设置
Frappe UIVue.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