Update DOC

This commit is contained in:
jysperm
2014-03-10 20:00:43 +08:00
parent 5afb1dadb0
commit 79a31b1308
3 changed files with 203 additions and 247 deletions

50
DOC/DEV/PLUGGABLE.md Normal file
View File

@@ -0,0 +1,50 @@
## 实现插件化
以下部分用『RP3』指代 RP3 的核心部分。
### 服务
每个服务插件,需要提供以下的功能(hook), 以下以 MySQL 举例:
* 启用 - 为 MySQL 添加一个用户
* 暂停 - 删除 MySQL 的用户
* 删除 - 删除这个用户所有的数据库
* 默认配置 - 密码默认为禁用
* 修改配置 - 修改密码
* 显示状态 - 如显示 MySQL 数据库磁盘占用
* 监控资源 - 如监控 MySQL 数据库磁盘占用
### Hook
插件可以注册 RP3 提供的 Hook 来对 RP3 的数据和逻辑进行修改。
`rendering.navbar` 表示正在渲染 HTML 输出中的导航条部分。
插件可以注册自己的处理程序,接收一个参数(目前的导航条条目), 返回一个值(处理后的).
### 数据储存
插件与 RP3 使用同一数据库,插件所使用的集合名需添加 `plugin.name` 的前缀,如 `plugin.ssh.info`.
### 路由
插件可以注册或覆盖 RP3 的路由。
### UI
插件可以在用户的面板添加区块来显示信息。
插件在修改配置时需要提供一段 HTML 表单。
### 资源监控
需要监控的资源有:
* CPU 时间 - 单位 秒(s)
* 内存占用 - 单位 百万字节每小时(MiB/h)
* 磁盘空间 - 单位 MiB
* 外网流量 - 可以延后实现
* 磁盘 OI - 可以延后实现
当然并非每个服务都能精确地监控这些资源,这其中有很多困难,总之尽力而为吧,以下以 SSH 服务的资源监控为例:
插件可以向 RP3 注册监控程序,如:
* 每 30s 运行 CPU 监控程序
* 每 60s 运行内存监控程序
* 每 6h 运行磁盘监控程序
监控程序定时向 RP3 返回几种资源的使用情况RP3 进行汇总统计。

146
DOC/DEV/PLUGINS.md Normal file
View File

@@ -0,0 +1,146 @@
## 插件
### 运行时
RP3 会安装下列语言的运行时
* PHP
* Python
* Golang
* Node
### 服务
* MySQL
使用 MariaDB 实现,只监听本地端口,支持引擎:
* MyISAM (默认)
* XtraDB(InnoDB)
需要提供一个类似 phpMyAdmin 的 GUI
* 权限控制
每个用户对『以自己的用户名为前缀的数据库』有操作权限
例如 jysperm 可以访问 jysperm_db
* 面板操作
* 设置 MySQL 密码
* 资源监控
* 磁盘占用
* 查询数量(折合为 CPU 时间,延后实现)
* XtraDB 的使用情况(折合为内存使用), 因为 XtraDB 比较消耗内存,延后实现
* MongoDB
MongoDB 开启 --auth 选项
权限控制:每个用户对『以自己的用户名为前缀的数据库』有操作权限
* 面板操作:
* 新建数据库
* 重置数据库权限
* 删除数据库
* 资源监控
* 磁盘占用
* 其他指标,延后实现
* SSH
* 面板操作:
* 设置 SSH 密码
* 结束所有进程
* 重置文件权限
* 资源监控
* 进程使用的 CPU 时间
* 进程使用的内存
* home 目录的磁盘空间
* Nginx
该插件直接对输入的 Nginx 配置文件进行解析,进行安全性检查。
然后将配置文件写入 Nginx, 重新加载 Nginx.
配置文件以站点为单位,每个站点可以暂时启用和禁用
* 同时提供一个 GUI 辅助用户编写配置文件
* [支持的配置文件指令](https://gist.github.com/jysperm/6479965)
* 面板操作
* 新建/修改/删除站点
* 资源监控
可以靠根据日志来统计,或者编写 Nginx 模块
* 请求数
* 流量
* PHP-FPM
为每个用户跑一个 PHP-FPM 进程池,并通过 Unix Socket 连接
该功能只是默认的 PHP 支持,用户完全可以运行自己的 PHP-FPM 实现深度定制。
* 面板操作
* 启用/关闭 PHP-FPM
* 资源监控
纳入 SSH 资源监控
* ShadowSocks
为每个用户使用单独的端口和密码。
* 面板操作
* 启用/关闭 ShadowSocks
* 设置密码
* 资源监控
可能需要修改其源代码
* 流量
* PPTP VPN
* 面板操作
* 设置密码
* 资源监控
可能需要修改其源代码
* 流量
* Memcached
为每个用户跑一个 Memcached, 并通过 Unix Socket 连接
* 面板操作
* 启用/关闭 Memcached
* 设置缓存内存大小
* 资源监控
纳入 SSH 资源监控
### 功能插件
* 用户手册
* 用户剩余时长计数器
* Bitcoin 支付
* 支付宝担保交易