跳到主要内容
xray.top

PanshiCMS

PanshiCMS (磐石CMS) —— 一个为现代企业打造的、基于Go语言的、安全高效、SEO友好、面向未来的内容管理与数字化增长引擎。

8/8/2025
gingogormmeilisearchmysqlseototpviper#gin#go#gorm#meilisearch#mysql#seo#totp#viper

PanshiCMS (磐石CMS)

Go Version License Build Status Project Status

PanshiCMS (磐石CMS) —— 一个为现代企业打造的、基于Go语言的、安全高效、SEO友好、面向未来的内容管理与数字化增长引擎。

就是不想再看phpcms了,我想把phpcms扫进垃圾桶里。该项目使用ai辅助开发。下面的描述由ai代写,按照我个人意志编写,本人基本赞同,但保留修改权利。


1. 项目哲学与愿景

PanshiCMS 的诞生,源于一个核心哲学:“万丈高楼平地起”。我们致力于为开发者和企业提供一个无比坚实的“数字化基石”,摒弃不必要的复杂性,专注于打造一个稳定、强大且体验卓越的核心。

我们的愿景是,让 PanshiCMS 成为:

2. 核心特性概览

3. 技术选型详解

| 类别 | 技术/服务 | 选型理由 | | :--- |:------------------------| :--- | | 后端语言 | Go 1.24+ | 性能卓越,静态编译,部署简单,并发能力强,非常适合Web后端服务。 | | Web框架 | Gin | 轻量级,性能在Go框架中名列前茅,API友好,社区活跃。 | | 数据库ORM| GORM | 功能强大,支持多种数据库,尤其AutoMigrate功能可以实现自动建表,极大简化开发和部署。 | | 数据库 | SQLite (默认), MySQL (可选) | SQLite作为默认选项,实现零配置启动,降低使用门槛。MySQL作为可选,满足高性能、高并发需求。 | | 配置管理 | Viper | 支持多种配置文件格式,能轻松管理程序启动所需的静态配置。 | | 搜索引擎 | Meilisearch | 极其轻量、快速,提供“开箱即用”的卓越搜索体验,尤其对中文分词和拼写容错支持极佳,极大提升用户体验。 | | 安全认证 | TOTP (pquerna/otp库) | 标准、可靠的双因素认证实现,提升后台安全性。 | | 部署方案 | Docker & Docker Compose | 实现环境标准化、隔离化,一键启动所有服务(Go应用、Meilisearch等),极大简化部署和运维。 |

4. 宏观架构设计

PanshiCMS的架构设计以高内聚、低耦合为核心原则,确保系统的稳定与可扩展性。

Text
[浏览器/小程序/App] <--- HTTP/API ---> [PanshiCMS Go应用 (Gin)]
                                        |
                                        +--------------------------+--------------------------+
                                        |                          |                          |
                                        [GORM] <-----> [数据库 (SQLite/MySQL)]   [Meilisearch Client] <-----> [Meilisearch服务]
                                        |
                                        [File I/O] <---> [本地存储/云存储 (S3)]

5. 功能模块详细规格

5.1 核心内容模型

所有内容模型都将包含基础字段、SEO字段,并集成数据同步Hook。以下以新闻文章 (NewsArticle) 模型为例,展示其完整定义:

Go
package model

import (
    "gorm.io/gorm"
    "time"
)

// NewsArticle 代表一条新闻或行业动态
type NewsArticle struct {
    gorm.Model // 内嵌gorm.Model,自带ID, CreatedAt, UpdatedAt, DeletedAt

    // 基础字段
    Title           string    `gorm:"not null" json:"title"`           // 标题,不能为空
    CoverImageURL   string    `json:"cover_image_url"`                 // 封面图URL
    Summary         string    `json:"summary"`                         // 摘要
    Content         string    `gorm:"type:text" json:"content"`        // 正文,富文本HTML
    PublishDate     time.Time `json:"publish_date"`                    // 发布日期
    IsPublished     bool      `gorm:"default:true" json:"is_published"` // 是否发布状态

    // SEO 字段
    Slug            string    `gorm:"unique;not null" json:"slug"`      // URL别名,用于生成SEF URL,唯一且不能为空
    MetaTitle       string    `json:"meta_title"`                       // 供搜索引擎使用的标题(留空则默认使用主标题)
    MetaDescription string    `json:"meta_description"`                 // 供搜索引擎使用的页面描述
    MetaKeywords    string    `json:"meta_keywords"`                    // 供搜索引擎使用的关键词
}

// AfterSave Hook: 在GORM中创建或更新记录后,将自动触发此函数
func (article *NewsArticle) AfterSave(tx *gorm.DB) (err error) {
    // 异步调用Service层的方法,将该条数据同步到Meilisearch
    // 伪代码:
    // if article.IsPublished {
    //     go service.GetMeiliSearch().SyncDocument("news", article)
    // } else {
    //     go service.GetMeiliSearch().DeleteDocument("news", article.ID)
    // }
    return
}

// AfterDelete Hook: 在GORM中删除记录后,将自动触发此函数
func (article *NewsArticle) AfterDelete(tx *gorm.DB) (err error) {
    // 异步调用Service层的方法,从Meilisearch中删除对应文档
    // 伪代码:
    // go service.GetMeiliSearch().DeleteDocument("news", article.ID)
    return
}

5.2 前端通用页面布局

严格遵照我们讨论并确定的模块化布局,自上而下包含以下全部核心板块:

  • 一、顶部导航栏 (Header):
    • 企业LOGO(左侧)
    • 主导航菜单(右侧/居中):首页、关于我们、产品/服务、成功案例/客户、新闻中心/行业动态、联系我们
    • 全站搜索框(位于主导航与语言切换之间)
    • 语言切换按钮(中文/英文,最右侧)
    • ICP备案号展示位(建议在顶部右下角预留)
  • 二、轮播图区域 (Banner):
    • 1~3张高清横幅图,图片源于后台“产品/服务”中被标记为“推荐到首页”的条目。
    • 每张图配一句简短标语,可点击跳转至具体业务页面。
    • 支持自动轮播 & 手动切换。
  • 三、企业简介 / 核心优势 (About Us / Value):
    • 简明介绍公司成立时间、业务范围、愿景等。
    • 通过“图标+简短文字”的形式,展示核心优势(如:10年经验、50+合作客户、自主研发)。
  • 四、主营业务 / 产品服务展示:
    • 通过图文卡片的形式,分类别介绍核心业务或产品。
    • 可点击跳转到详情页。
  • 五、案例展示 / 合作客户:
    • 精选3~6个图文并茂的成功案例进行展示。
    • 以Logo墙的形式,展示重要的合作客户。
  • 六、新闻资讯 / 行业动态:
    • 以列表形式,展示最新的公司新闻或行业动态摘要。
  • 七、联系我们 (Call to Action):
    • 清晰列出联系方式(电话、邮箱、地址)。
    • 提供微信二维码。
    • 集成一个功能完善的在线留言表单。
    • 嵌入百度地图或高德地图插件。
  • 八、网站底部 (Footer):
    • 快捷导航链接。
    • 法律声明 / 隐私政策页面链接。
    • ICP备案号公安备案号
    • 版权所有信息 (© 2025 Your Company)。
  • 九、附加模块:
    • 全局浮动的在线客服或“立即咨询”按钮。

6. 部署与运维

7. 可执行的详细实现路线图

我们相信,一个伟大的项目是由社区共同铸就的。这份路线图是我们的行动纲领,我们欢迎每一位开发者参与进来,共同将PanshiCMS变为现实。


阶段一:奠定基石 (目标版本: v0.1 ~ v0.5)

目标:构建并上线一个功能完整、安全合规、具备核心内容管理能力的MVP版本。

模块 M-PROJ-SETUP: 项目初始化与环境配置
模块 M-BE-CORE: 后端核心架构
模块 M-ADMIN-PANEL: 后台管理系统
模块 M-FE-SSR: 前端服务端渲染
模块 M-COMPLIANCE: 基础功能与合规性

阶段二:精装升级 (目标版本: v0.6 ~ v1.0)

目标:全面提升网站的专业度、用户体验、运营效率和SEO表现,达到行业一流水准。

模块 M-SEARCH: 搜索引擎集成
模块 M-SECURITY: 安全强化
模块 M-OPS-SEO: 运营与高级SEO

8. 未来规划 (v1.0+ Future Roadmap)

此为项目的远期规划,将在核心版本稳定后,根据社区反馈和商业需求择机实施。

还需要:

  1. 后台路径动态化: 当前后台管理路径是固定的(/admin)。未来版本应支持动态生成并配置后台路径,避免默认路径容易被发现。通过在 站点设置 中存储随机路径,可以提高安全性,且后台的所有路由应包含该动态路径。

  2. URL 别名管理: 当前的 slug 只是各自模型(新闻、服务、案例)的唯一标识,建议实现一个全局 别名表 来管理 URL 别名,避免不同内容的 slug 出现冲突,同时简化路由映射管理。

  3. 前端 UI 优化: 目前的 UI 采用了 Layui,建议在未来版本中使用 Astro 或 React 等现代前端框架进行重构。这不仅能提升用户体验,还能实现更好的响应式设计,优化页面在不同设备上的展示效果。

  4. 智能营销和自动化: 未来版本可以引入 AI 辅助内容生成和营销自动化,比如根据网站数据生成个性化的内容推荐,自动化推送文章,提升网站内容更新和用户互动的效率。

  5. 云存储和可扩展性: 当前实现了本地文件存储,后期可以考虑将存储引擎迁移到云平台,使用 S3 或类似的云存储服务,提升系统的存储能力和可扩展性。

  6. 高级 SEO 功能: 系统可以增加更多 高级 SEO 工具,例如自动生成 Open Graph 标签、JSON-LD 结构化数据、schema.org 集成等。这些功能可以帮助网站在搜索引擎中获得更好的展示,尤其是在 Google 中的丰富结果。

  7. 用户角色管理: 实现更为细致的 角色权限管理(RBAC),允许根据不同的用户角色(如内容编辑、营销人员、管理员)分配不同的访问权限。这样可以让团队成员根据权限执行相应的操作,提高工作效率和系统安全性。

  8. 分析与报告: 集成 Google Analytics 或内部分析系统,帮助网站管理员和业务人员更好地跟踪访问数据、用户行为、内容表现等重要指标,提升运营效率。

9. 如何贡献 (Contributing)

我们热烈欢迎所有形式的贡献!无论是提交bug、建议新功能还是贡献代码。请在提交Pull Request前阅读我们的贡献指南(CONTRIBUTING.md - 待创建)。

10. 许可证 (License)

本项目带选定,计划采用 MIT License 开源。