Skip to content

BryonGo/aicodcms

Repository files navigation

aicodcms — 开源 CMS

Go 语言新一代 CMS | 插件化架构 | 双模板引擎 | 多语言站群

Go Version License


快速开始

# 数据库
mysql -u root -p < sql/codcms.sql

# 编译(当前平台)
make build

# 运行
./bin/$(make version | awk '{print $2}')/darwin_amd64/aicodcms   # macOS
./bin/$(make version | awk '{print $2}')/linux_amd64/start.sh    # Linux
bin\v1.0.1\windows_amd64\start.bat                               # Windows

后台:http://localhost:8201 账户:admin / 123456

版本管理

make version       # 查看当前版本
make bump-patch    # v1.0.1 → v1.0.2(打 tag + push,CI 自动 release)
make bump-minor    # v1.0.1 → v1.1.0
make bump-major    # v1.0.1 → v2.0.0

提交前显示 v1.0.1-dirty,提交后打 tag 显示 v1.0.1。 二进制内嵌版本:./bin/v1.0.1/darwin_amd64/aicodcms --version

插件

部分高级功能以插件形式放在 pro/ 目录,不是所有人都需要:

插件 说明
Game 游戏管理后台(CRUD + AK/SK)
SDK Gateway OAuth 2.0 HMAC-SHA256 签名认证
SNS 社交登录(Google/Facebook/Apple)
Ban 三维封禁(账号/IP/设备)
Payment 支付通道(Google Pay / Apple Pay)
MB345 短信服务

不需要的插件,直接删目录:

rm -rf pro/
# 并在 main.go 删除 _ "github.com/BryonGo/aicodcms/pro" 的 import

详见 pro/README.md

架构

┌──────────────────────────────────────────┐
│            Vue 3 管理后台                 │
├──────────────────────────────────────────┤
│    Casbin RBAC  ─── PMS 权限引擎         │
├──────────────────────────────────────────┤
│  Account │ CMS │ Order │ Product │ ...   │
├──────────────────────────────────────────┤
│  Pay │ Mail │ Upload │ Sitemap │ ...     │  插件
├──────────────────────────────────────────┤
│        GoFrame v2 框架                    │
├──────────────────────────────────────────┤
│        MySQL 8.x                         │
└──────────────────────────────────────────┘

插件注入机制

type Plugin interface {
    Name() string
    Migrations() []string
    InitRouter(group *ghttp.RouterGroup)
}

func init() { plugin.Register(&cmsPlugin{}) }

主路由通过名称查找插件,不硬编码任何 import。

双模板引擎

场景 推荐引擎 原因
设计师做页面 gview 熟悉的 HTML 语法
开发者做页面 templ Type-Safe,编译期检查
生产环境 templ 编译到二进制,零文件 IO
开发环境 gview 改模板即刷新

多语言

  • zh-CN / en-US 双语言激活
  • 前端 $t() + 后端 g.I18n().Tf() 统一 i18n
  • 文章级多语言翻译
  • Sitemap hreflang 自动生成

内容模型

model_id = 1 → 文章(cms_article_topic 存正文)
model_id = 2 → 下载(cms_article_topic_down 存下载信息)
model_id = 3 → 电影(cms_article_topic_movie 存播放信息)

QQ群

211523429 欢迎👏🏻

协议

MIT License

About

server

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages