# yiicms **Repository Path**: templi/yiicms ## Basic Information - **Project Name**: yiicms - **Description**: yiicms 企业站系统使用yii2开发,真正支持多语言的企业站系统,支持全站网页文件缓存 演示站 https://www.guoway.net/ https://kf.guoway.net/ - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: guoway-cms - **Homepage**: https://www.guoway.net/ - **GVP Project**: No ## Statistics - **Stars**: 238 - **Forks**: 102 - **Created**: 2016-12-15 - **Last Updated**: 2026-09-02 ## Categories & Tags **Categories**: cms **Tags**: None ## README # 果唯CMS - Golang Gin重构版 果唯CMS基于Golang Gin框架的企业CMS系统,原Yii2 PHP版本重构。新增大量功能优化,性能更好功能更强,SEO更友好。 > 感谢您的支持与鼓励!如果您喜欢这个开源项目,不妨给它点个⭐️⭐️⭐️,您的星星是我们前进的动力 🙏🙏🙏 ## 官网 - 官网:[https://www.guoway.net](https://www.guoway.net) - Github:[https://github.com/yongshengli/yiicms](https://github.com/yongshengli/yiicms) - Gitee:[https://gitee.com/templi/yiicms/tree/guoway-cms/](https://gitee.com/templi/yiicms/tree/guoway-cms/) ![guoway-cms 前台功能概览](home.png) ![guoway-cms 后台功能概览](backend.png) ## 技术栈 ### 后端 - **Golang** 1.21+ - **Gin** - Web框架 - **GORM** - ORM - **MySQL** - 数据库 - **JWT** - 身份认证 - **Viper** - 配置管理 ### 前端 - **Vue3** - 后台管理 - **TDesign** - UI组件库 - **Vite** - 构建工具 ## 项目结构 ``` guoway-cms/ ├── cmd/ │ └── server/ │ └── main.go # 程序入口 ├── internal/ │ ├── config/ # 配置 │ ├── model/ # GORM模型 │ ├── handler/ │ │ ├── api/ # API处理器(后台管理) │ │ └── web/ # 前端页面处理器 │ ├── middleware/ # 中间件(JWT、CORS) │ └── router/ # 路由 ├── web/ │ ├── layouts/ # 模板布局 │ ├── templates/ # HTML模板 │ │ ├── products/ # 产品页 │ │ ├── news/ # 新闻页 │ │ ├── downloads/ # 下载页 │ │ ├── photos/ # 照片页 │ │ └── site/ # 基础页面 │ ├── static/ # 静态资源 │ └── images/ # 图片 ├── admin/ # 后台前端(Vue3+TDesign) ├── config.yaml # 配置文件 └── go.mod ``` ## 快速开始 ### 后端 ```bash # 1. 先创建数据库(GORM 会自动建表,但不会自动创建数据库本身) mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS yiicms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" # 2. 复制并修改配置 cp config.yaml.example config.yaml # 编辑数据库连接、JWT secret 等配置 # 3. 运行(启动时会自动建表,无需手动导入 SQL) cd cmd/server go run main.go # 或编译后运行 go build -o guoway-cms-server ./cmd/server/ ./guoway-cms-server ``` > **说明**:程序启动时通过 GORM AutoMigrate 自动建表,**无需手动导入 SQL**。只需要提前创建好空的数据库(库名与 `config.yaml` 中 `database` 一致)。 ### 后台前端 ```bash cd admin npm install npm run dev # 访问 http://localhost:5173 # 生产构建:npm run build(产物在 admin/dist,由 Go 托管在 /admin/* 下) ``` ## 默认账户 - 用户名: `admin` - 密码: `admin` > ⚠️ **安全提示**:默认账号密码仅用于开发环境,**生产环境请务必在登录后立即修改管理员密码**。登录后旧 MD5 密码会自动升级为 bcrypt 加密。 ## 生产部署 ```bash # 1. 复制生产配置(端口 9090,web_root 为 ".",与 nginx 反代一致) cp config.prod.yaml.example config.prod.yaml # 编辑数据库密码、JWT secret、site_url 等 # 2. 交叉编译 Linux amd64 二进制(纯静态链接) ./build-linux.sh # 3. 上传二进制、配置、模板/静态资源、admin/dist 到服务器, # 目录结构参见 deploy/guoway-cms.service 顶部注释 # 4. 部署 systemd 服务与 nginx 配置 sudo cp deploy/guoway-cms.service /etc/systemd/system/ sudo cp deploy/guoway-cms.conf /etc/nginx/conf.d/guoway-cms.conf # 按需修改 service 里的 User/路径、conf 里的域名与 SSL 证书路径 sudo systemctl daemon-reload sudo systemctl enable --now guoway-cms ``` > **端口说明**:生产环境 Go 服务监听 `9090`(`config.prod.yaml`),nginx 反向代理到该端口;开发环境默认 `8080`。 ## API路由 ### 公开API - `GET /api/contents` - 获取内容列表 - `GET /api/contents/:id` - 获取内容详情 - `GET /api/categories` - 获取分类列表 - `POST /api/admin/login` - 后台登录 - `POST /api/feedbacks` - 提交反馈 ### 管理API(需JWT认证) - `GET /api/admin/profile` - 当前用户信息 - `GET/POST /api/admin/contents` - 内容管理 - `PUT/DELETE /api/admin/contents/:id` - 内容操作 - `POST /api/admin/contents/batch-delete` - 批量删除 - `GET/POST /api/admin/categories` - 分类管理 - `GET/POST /api/admin/ads` - 广告管理 - `GET/POST /api/admin/configs` - 配置管理 - `GET/POST /api/admin/pages` - 单页管理 - `GET/DELETE /api/admin/feedbacks` - 反馈管理 - `GET/POST /api/admin/blogrolls` - 友情链接管理 - `GET/POST /api/admin/users` - 管理员管理 ## 前端页面 所有前台页面使用「语言前缀 + 路由 + .html」规范,根路径 `/` 会 302 跳转到默认语言首页。 - `/` - 首页(重定向到 `/zh-CN/index.html`) - `/{lang}/index.html` - 首页(lang 为 zh-CN / en-US / zh-TW) - `/{lang}/products/list.html` - 产品列表 - `/{lang}/products/list/{分类id}.html` - 产品分类列表 - `/{lang}/products/{内容id}.html` - 产品详情 - `/{lang}/news/list.html` - 新闻列表 - `/{lang}/news/list/{分类id}.html` - 新闻分类列表 - `/{lang}/news/{内容id}.html` - 新闻详情 - `/{lang}/downloads/list.html` - 下载列表 - `/{lang}/downloads/list/{分类id}.html` - 下载分类列表 - `/{lang}/downloads/{内容id}.html` - 下载详情 - `/{lang}/photos/list.html` - 照片相册列表 - `/{lang}/photos/list/{分类id}.html` - 照片分类列表 - `/{lang}/photos/{内容id}.html` - 照片相册详情 - `/{lang}/contact.html` - 联系我们 - `/{lang}/about.html` - 关于我们 - `/{lang}/page/{单页id}.html` - 单页 - `/{lang}/search.html` - 搜索 ## 数据库模型 由 GORM AutoMigrate 自动创建,兼容原 Yii2 CMS 核心表结构: - `admin_user` - 管理员 - `content` - 内容(产品/新闻/下载/照片) - `content_detail` - 内容详情 - `category` - 分类 - `config` - 系统配置 - `ad` - 广告(含友情链接 type=102) - `page` - 单页 - `feedback` - 反馈 - `role` / `permission` / `role_permission` - RBAC 角色权限(重构新增) ## 特性 - ✅ 兼容原 Yii2 CMS 核心数据库结构 - ✅ 自动建表(GORM AutoMigrate),无需手动导入 SQL - ✅ MD5密码自动升级为bcrypt - ✅ 多语言支持(zh-CN、en-US、zh-TW) - ✅ JWT Token认证 - ✅ RESTful API - ✅ 响应式前台模板 - ✅ TDesign后台管理界面 - ✅ 分类树结构支持 - ✅ SEO友好URL(.html后缀) ### 邮箱 ### QQ群 248898849 ## 付费服务 付费是为了项目能够更好的生存下去,请谅解。项目将一如既往的开源下去~ | 服务 | 价格 | 服务内容 | | -------- | ------ | ------------------------------------------------ | | 商用授权 | ¥100 | 提供 guoway-cms 商业使用授权 | | 功能定制 | 面议 | 接受各种功能定制,只有你想不到的没有我们做不到的 |