@row #0 发布于55days ago 最近把 PayIncus 推到了 v0.6.10,这版已经完成 GitHub Release、CI、文档站构建,并通过生产环境 OTA 升级验证。 项目地址: https://github.com/VipMaxxxx/payincus 文档站: https://payincus.com Release: https://github.com/VipMaxxxx/payincus/releases 项目介绍 PayIncus 是一个基于 Incus 的 NAT VPS / LXC / KVM 销售、交付和管理面板。 它的目标不是只做一个“能开机器”的用户面板,而是尽量把一个小型云服务商真实运营会遇到的链路都串起来,包括: 用户注册、登录、钱包、订单、工单 NAT VPS / LXC / KVM 实例销售和交付 Incus 宿主机 Agent 上报 支付回调、余额流水、订单中心 管理后台、财务对账、调账审批 SLA 告警、容量成本、交付保障 扩展中心、主题系统、Public API 后台 OTA 在线升级和回滚 简单说,它更偏“商业运营面板”,不是单纯的虚拟化控制台。 为什么做这个项目 现在 Incus 本身很好用,但如果想基于 Incus 做 VPS 销售,实际还缺很多面向商业运营的东西。 比如: 用户购买后如何自动交付实例 如何处理余额扣费、续费、退款、调账 支付回调如何保证幂等和安全 用户出问题后如何查订单、实例、账务、工单上下文 宿主机容量不够时如何提前发现 后台如何安全升级而不是每次手动覆盖文件 第三方开发者如何做插件、主题、支付网关或自动化扩展 PayIncus 就是围绕这些实际问题做的。 当前主要功能 用户端 用户端面向普通客户,提供自助购买和管理能力: 注册 / 登录 套餐市场 实例列表 实例详情 开机、关机、重启等操作 WebSocket 终端 钱包余额 充值记录 订单中心 工单系统 通知中心 邀请返利 礼品卡兑换 用户资料和安全设置 用户端和后台是分离构建的,不是同一个前端里靠路由区分。 管理后台 后台面向运营和管理员: 用户管理 实例管理 套餐管理 节点 / 宿主机管理 镜像管理 支付渠道配置 充值订单管理 统一订单中心 财务对账 调账审批 SLA 告警 容量与成本分析 交付保障 工单与客服成功工作台 OAuth Provider 管理 扩展中心 主题系统 后台 OTA 更新 后台重点不是“页面多”,而是尽量把运营动作留痕、权限、审计和异常处理补上。 Incus 资源交付 PayIncus 使用 Incus 作为底层虚拟化/容器平台,可以管理 LXC / KVM 实例。 目前支持: NAT 网络 IPv6 套餐资源限制 镜像选择 宿主机绑定 实例创建 实例生命周期操作 Web terminal Agent 心跳 资源上报 流量统计 NAT 端口映射 宿主机通过 Agent 上报状态和资源,后台可以看到节点在线状态、容量、实例状态和风险提醒。 支付与账务 支付和账务是高风险链路,所以 PayIncus 目前重点做了这些控制: 充值订单 支付回调 余额流水 消费记录 实例账单 订单中心 人工完成 / 标记失败 调账审批 退款登记 财务对账 推荐返利 积分 / VIP 礼品卡 调账、退款、补款这类动作不会直接随便改余额,而是进入审批/审计链路。 v0.6.10 新增:礼品卡中心 最新的 v0.6.10 主要新增了礼品卡功能。 用户端能力 用户可以: 用自己的余额生成礼品卡 兑换其他用户或后台发放的礼品卡 查看自己生成或持有的礼品卡记录 复制礼品卡兑换码 后台能力 管理员可以: 单张生成礼品卡 批量生成礼品卡 查看礼品卡统计 查看礼品卡列表 启用礼品卡 禁用礼品卡 删除未使用礼品卡 批量禁用 / 删除 安全设计 因为礼品卡本质上是余额类功能,所以做了比较严格的限制: 用户生成礼品卡时,扣余额和创建礼品卡在同一事务里完成 兑换礼品卡时使用礼品卡锁和用户余额锁 防止并发重复兑换 禁止用户兑换自己生成的礼品卡 后台列表默认只显示脱敏兑换码 生产环境必须配置礼品卡管理员白名单 没有白名单时,后台礼品卡管理默认拒绝访问 生产环境已经通过 OTA 升级,gift_cards 表和 migration 已确认落库。 扩展中心 PayIncus 现在已经不只是“插件上传”这么简单,而是往扩展平台方向做。 扩展中心支持: 上传 .tar.gz 扩展包 校验 manifest 安装扩展 启用 / 停用 / 卸载 扩展配置页 用户端扩展页面 后台扩展页面 扩展市场 投稿审核 扫描 发布 安装任务日志 扩展市场支持在线读取文档站上的稳定索引,所以不需要每次系统升级都把市场写死在代码里。 主题系统 PayIncus 也在做真正的主题系统,而不是简单换 CSS。 目前主题系统支持: 主题包上传 主题市场 主题投稿审核 扫描 预览 启用 回滚默认主题 配置表单 设计 token 静态资产校验 受控模板槽 主题不能随便执行后端代码,也不能注入任意远程脚本,主要通过受控 CSS、配置和模板 slot 改变前台/后台外观。 Public API / OAuth / SDK PayIncus 目前已经提供第一版 Public API 能力: OAuth Provider API Token OAuth access token OpenAPI 3.1 Public API SDK scope 权限模型 分页 / 排序 / 白名单过滤 统一错误模型 当前 Public API 主要开放低风险和受控能力,例如: 读取用户资料 读取余额 读取余额流水 提交待审批余额调整申请 读取产品 读取服务 受控执行 start / stop / restart 读取订单 读取账单 创建和回复自己的工单 读取通知 触发扩展声明过的受控 action 暂时不会开放直接支付建单、支付回调、退款、直接余额写入、服务删除、迁移、后台管理、扩展安装、主题启用这类高风险能力。 OTA 在线升级 PayIncus 支持后台 OTA 在线升级。 后台可以看到: 当前版本 最新 Release Git tag commit build time deploy time 更新内容 Release 包 SHA256 更新任务日志 回滚入口 生产部署推荐使用原子 release 布局: /opt/incudal/current -> /opt/incudal/releases/<version> 升级时会下载 GitHub Release 里的 OTA 包,校验 SHA256,解压到新的 release 目录,执行 migration,然后切换 current。 如果失败,会尽量回滚到上一版。 这次 v0.6.10 已经完成生产 OTA 验证。 当前验证状态 v0.6.10 当前已经完成: GitHub Release 成功 CI 通过 Docs Pages 通过 生产 OTA 完成 用户端 /api/health 返回 200 后台 /api/health 返回 200 数据库 migration 已应用 gift_cards 表已存在 生产环境 pnpm verify:production 通过 后台礼品卡管理员白名单已配置 当前生产版本: v0.6.10 Release 地址: https://github.com/VipMaxxxx/payincus/releases/tag/v0.6.10 部署方式 目前推荐非 Docker 部署,使用: Node.js pnpm PostgreSQL Redis Nginx systemd Incus PayIncus Agent 推荐结构是用户端、后台端和后端 API 分离: 用户端域名 -> Nginx 静态文件 -> /api 反代后端 后台域名 -> Nginx 静态文件 -> /api 反代同一个后端 后端 -> PostgreSQL -> Redis -> Incus / Agent 一键安装脚本也已经提供,但生产建议先看文档,根据自己的域名和机器环境调整。 适合谁用 这个项目比较适合: 想基于 Incus 做 NAT VPS 销售的人 小型 VPS 商家 有多台宿主机需要统一售卖和管理的人 想自己搭建一套用户购买、支付、交付、工单、账务系统的人 想研究 Incus 商业化面板的人 想参与开源 VPS 面板开发的人 如果只是想要一个很轻量的个人自用 Incus 面板,它可能会显得偏重,因为里面很多功能是面向商业运营的。 项目地址 GitHub: https://github.com/VipMaxxxx/payincus 文档站: https://payincus.com Release: https://github.com/VipMaxxxx/payincus/releases Demo 后续也会继续完善。 最后 PayIncus 还在快速迭代中,目前已经从单纯面板逐步扩展成一个完整的 VPS 商业运营系统。 接下来会继续完善: 插件/扩展开发体验 主题系统 支付网关扩展 更多 Public API 文档和示例 安装器体验 生产验收和运维工具 欢迎大家提 Issue、建议、PR,或者直接拿去测试。 有没有 UI 图
bd
还没看文档,不过不知道是不是支持DHCP,如果有DHCP是不是KVM nat机器也可以DD系统了。
@-- #12 不支持,目前阶段是完善,近期不会做新增功能了
@row #13 再次感谢开源
这就开小鸡来卖
@七块五 #15 快来
厉害了
有没有 UI 图