切换主题
项目介绍
webos v2 是一个面向现代云原生与分布式环境的后端管理框架,后端采用 Go Gin,前端采用 Vue 3。它希望在单体应用的开发效率与分布式系统的扩展能力之间取得平衡。
分布式单体
webos v2 使用一套代码同时支持轻量单机部署和分布式部署。项目早期可以使用 SQLite、本地缓存和内存消息队列快速启动;业务规模增长后,可以逐步切换到独立数据库、Redis、RocketMQ 和多节点运行。
这种方式的重点不是把单体与分布式混在一起,而是让业务代码面向统一接口开发,把部署形态的差异留给基础设施层处理。
核心能力
| 能力 | 说明 |
|---|---|
| 分布式单体架构 | 一套代码适配单体与分布式部署,减少架构切换成本 |
| 代码生成器 | 生成模型配套的控制器、CRUD 页面与语言包 |
| 分布式插件系统 | 支持主程序插件、前端插件、第三方插件与远程应用 |
| 混合缓存策略 | 支持本地缓存与 Redis,并为切换和降级保留统一接口 |
| 多消息队列 | 支持内存队列、Redis 与 RocketMQ |
| 多数据库 | 支持 SQLite、MySQL、PostgreSQL、SqlServer、GaussDB、ClickHouse |
| 数据软删除 | 基于 GORM 提供统一的软删除能力 |
| 多日志输出 | 支持控制台、文件与数据库等输出方式 |
| 双编译模式 | 支持带界面程序和无界面 Headless 程序 |
| 多套外观 | 支持后台、Windows、macOS、Deepin、Pad 等工作区外观 |
| 个性化与国际化 | 支持明暗主题、主题色、字体、圆角、壁纸与多语言 |
设计理念
webos v2 不只是一套后台页面模板,而是一套可以长期维护和持续扩展的业务底座。
业务能力可以放在内核中,也可以根据边界拆成不同类型的插件。已有系统不必一次性重写,可以先通过第三方插件或远程应用接入统一工作台,再逐步替换核心模块。
系统界面同样面向长期使用设计。不同外观共享业务页面,主题、字体、圆角、透明度和多语言可以按团队、客户或产品定位调整。
技术栈
后端
- Go 1.24.6
- Gin Web Framework
- GORM
- SQLite、MySQL、PostgreSQL、SqlServer、GaussDB、ClickHouse
- 本地缓存与 Redis
- 内存队列、Redis 与 RocketMQ
前端
- Vue 3.5.18
- Naive UI 2.42.0
- 多外观窗口与桌面系统
- 明暗主题、主题色、字体与圆角配置
- 国际化支持
开发目录
text
├── api/ # 后端项目
│ ├── cmd/ # 控制台与 GUI 启动入口
│ ├── internal/ # 缓存、配置、控制器、数据库、插件等核心模块
│ └── pkg/ # 公共工具包
├── share/ # 插件共享包
├── util/ # 编译工具与代码生成器
└── web/ # Vue 前端项目
├── public/
└── src/1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
完整启动、配置、迁移和插件链路见架构原理。
功能模块
开源社区版
- 个人中心:头像、昵称与密码管理
- 个性化:外观、颜色、语言、主题、圆角、字体与壁纸
- 系统设置:站点信息、默认配置、安全入口与备案信息
- 配置设置:服务器、日志、跨域、限流、认证、数据库、缓存与消息队列
- 多桌面界面:后台、Windows、macOS、Deepin、Pad
- 消息通知与应用商店
企业版
- 多用户、角色、部门、功能权限与数据权限
- 好友、群组、企业沟通、短信与邮件
- 机器管理、批量重启与插件负载设置
- 本地应用上传与机器升级
- 会员、订单与支付管理
访问路径
| 类型 | 默认路径 |
|---|---|
| 主程序 | http://127.0.0.1:9099 |
| 主程序插件 | http://127.0.0.1:9099/page/{code}/ |
| 前端插件 | http://127.0.0.1:9099/api/webplugin/{code}/ |
| 第三方插件 | http://127.0.0.1:9099/api/thirdplugin/{code}/ |
| 远程应用 | 插件记录中的远程地址 |