跳到主要内容
平台持续迭代维护中

兰台

LANTAI / VAKAO PLATFORM

一套后端,三端前台,单文件交付。

兰台是 VaKao 的全栈单仓实践:GoFrame 主服务、独立更新分发、管理端、云阁 Web 与 uni-app 移动端。三端产物嵌入二进制,部署只需要一个文件与一份配置。

ADMIN
CLOUD

角色

架构 / 全栈 / 设计

平台

Web / Android / iOS

周期

持续迭代

技术栈

Go / GoFrame / Vue 3

为什么做兰台

大多数“全栈模板”把前后端放在两个仓库里:类型各写一份、请求层各封一套、部署要维护 Node 与 Go 两套运行时。兰台反过来做——一个仓库、一个二进制、一份配置,把多端交付的固定成本压到最低。

后端是 GoFrame 主服务与独立的更新分发服务;前台包括 Element Plus 管理端、Naive UI 云阁 Web、uni-app 移动端。三端构建产物先组装到 resource/public,再由 gf build --ps 嵌入二进制。改动前端需要重新构建,这是单文件交付的代价,也是它最简单的地方。

几个关键取舍

  • 双域 JWT 隔离:/api/v1/admin/* 与 /api/v1/app/* 使用不同的受众,管理端令牌不能打业务接口。
  • goose 迁移而不是自动同步:生产 DDL 必须可审计、可回滚;开发期才允许自动同步。
  • 更新服务独立部署:APK 下载是长带宽、发布节奏独立,拆开后不影响业务 API。
  • 内嵌资源优先:改了 resource/public 却没有重新构建,运行时会继续读旧资源——这是最容易踩的坑之一。

现状

兰台仍在持续迭代,主要精力放在移动端更新链路、权限模型与部署体验上。它是一个内部平台型项目,演示与接入需要单独沟通。

02 / CAPABILITIES

它能做什么。

01

单仓多端

后端、管理端、云阁 Web 与移动端放在同一个仓库,共享类型、请求层与构建约定。

02

双域认证

管理端与业务端使用独立的 JWT 受众,令牌不能跨域使用,避免权限越界。

03

三段式权限

用“域:资源:操作”描述权限点,在线授权后实时生效,不需要重新登录。

04

独立更新分发

APK 与 wgt 的检测、灰度、签名下载与事件回收拆成独立服务,不占用业务 API。

05

可观测性

结构化日志、Prometheus 指标、操作审计与按日滚动日志,排障时能还原链路。

06

单文件部署

三端静态产物嵌入 Go 二进制,生产环境只需要二进制与一份配置文件。