插件分发中心

一次上传, 多站安装,版本可控。

享耍的插件统一托管在这里:上传插件包、分配接入账号、查看下载与安装统计,业务站按需拉取。

13在架插件
215累计下载
4累计安装
2接入站点
安全分发 · 全程可查

签名下载, SHA-256 校验,一笔不漏。

接口按账号与时间戳签名,插件包附带校验值;每一次下载与安装都会回流成事件,便于对账与排查。

公开文档,无需登录即可阅读。

应用预览

插件可以长成什么样

下面是已内置与规划中的插件形态,都可以按同一套结构上架分发。

内置

网址

应用图标式收藏夹,分组整理常用站点

内置

记事本

日历归档、按时间检索,随写随存

内置

网盘

文件存储、图片预览、传输记录时间轴

规划中

独立站

建站与内容发布,域名与主题统一管理

规划中

自营网店

自有商品与库存,订单履约一体化

规划中

主流网店

电商全链路:商品、订单、活动与对账

规划中

项目流程

任务看板、节点审批与进度提醒

规划中

行政管理

组织、权限、用章与审批留痕

规划中

会计出纳

收支流水、票据归档与月度汇总

规划中

客服统计

工单、响应时长与满意度分析

规划中

流量中心

访问来源、转化漏斗与渠道对比

分发能力

上架之后,剩下的事交给我们

版本、更新包、校验、鉴权与统计都在仓库侧完成,业务站只负责安装、更新与回滚。

多版本与校验

同一插件多版本共存,新版自动置顶;每个包记录大小与 SHA-256,下载后逐字节校验。

下载与安装统计

下载、安装与更新事件全部回流,按插件与站点汇总,随时对账。

账号与密钥

按站点分配接入账号,密钥可随时轮换,签名直连接口。

独立部署

独立目录与数据表前缀,可与业务站分开扩容与迁移。

接入流程

三步完成上架

打包、发布更新包、站点安装,全程无需改动业务站代码。

  1. 01

    按规范打包

    manifest.json、routes.php、Controller 与 web 前端按固定结构组织,打成 zip。

  2. 02

    上传到仓库

    后台「插件包」按插件分组:首次发布走顶部入口,后续更新包在对应分组内上传,自动校验清单、写入版本与 SHA-256。

  3. 03

    站点安装与更新

    会员中心安装自动取最新版;仓库有新版本时显示「有更新」,一键升级前自动备份插件数据,失败自动回滚。

更新包示例

一个完整的更新包,长这样

以 shop 1.1.1 → 1.2.0 为例:完整目录结构、manifest.json 与新增迁移 SQL,改版本号即可复用。

shop-1.2.0.zip

完整包 · 非差量补丁 版本号递增 迁移幂等

打包时只打目录内容,ZIP 根目录必须直接是 manifest.json;历史迁移保持原样,只新增本次的 003。

目录结构 TREE
  • manifest.jsonversion → 1.2.0
  • routes.php不变
  • migrations/
  • 001_init.sql禁改
  • 002_orders.sql禁改
  • 003_order_remarks.sql新增
  • src/Controller.php加备注接口
  • src/Service/RemarkService.php新增
  • docs/README.md更新说明
  • web/index.html备注输入框
manifest.json JSON
{
  "slug": "shop",
  "name": "自营网店",
  "version": "1.2.0",
  "description": "商品、订单、活动与对账一体化的自营网店。",
  "intro": "1.2.0:新增订单备注,支持详情编辑与列表检索。",
  "icon": "bag",
  "table_prefix": "p_shop_",
  "nav": { "label": "网店", "order": 30, "path": "/app/shop/" },
  "permissions": ["shop.read", "shop.write"],
  "requires": []
}
migrations/003_order_remarks.sql SQL
CREATE TABLE IF NOT EXISTS p_shop_order_remarks (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id INT UNSIGNED NOT NULL DEFAULT 0,
  order_id INT UNSIGNED NOT NULL DEFAULT 0,
  remark VARCHAR(200) NOT NULL DEFAULT '',
  created_at DATETIME NOT NULL,
  updated_at DATETIME NOT NULL,
  PRIMARY KEY (id),
  KEY idx_user_order (user_id, order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
打包与上传 SHELL
cd /path/to/shop-1.2.0
zip -r ../shop-1.2.0.zip . -x "node_modules/*" ".git/*" "tests/*" "*.log"
unzip -l ../shop-1.2.0.zip | head -20     # 根目录必须直接是 manifest.json
sha256sum ../shop-1.2.0.zip               # 上传后与仓库显示的 SHA-256 比对

# 后台「插件包」→ 展开 shop 分组 → 「上传更新包」→ 选择 shop-1.2.0.zip
# 业务站会员中心出现「有更新 v1.2.0」→ 一键更新(升级前自动备份)
  1. 版本号:修 Bug 用 1.1.(z+1),兼容新功能用 1.(y+1).0,不兼容用 (x+1).0.0。
  2. 迁移:每次安装 / 更新都会重跑全部 SQL,必须幂等;执行器会忽略报错,改表前先测试库验证。
  3. 上传:分组内上传,服务端校验 manifest.slug 与分组一致;新版置顶「最新」,旧版保留可回滚。
关于仓库

少一点耦合,
多一点可控。

仓库与业务站完全解耦:插件主代码在这里分发,业务站只保留安装记录与启用状态。这样每个插件都能独立升级,整站也能按需拆分部署。

  • 独立目录、独立数据表前缀
  • 更新包分组上传,旧版保留可回滚
  • 签名接口 + SHA-256 校验
  • 下载、安装、更新事件全量留痕
  • 仓库已完成初始化
登录管理后台