最近把 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,或者直接拿去测试。
@-- #12 不支持,目前阶段是完善,近期不会做新增功能了
支持开源
拼垃圾快速腾飞
完了,以后人人都是oneman,
支持
后台是incudal??
但是主页风格太AI了,跟incudal风格不搭
支持
@Tokin #4 二开来的
@Tokin #4 只是做了bug修复优化,前后端分离,很多改动
测试站:sharevps.top 随时回滚
可以了解下
鸡腿支持