项目进展2026-09-16

官网 CMS 建站平台 · 产品说明

志睿源(重庆)软件有限公司 · 产品说明 说明日期:2026-09-16 | 状态:已开源(Apache-2.0)


一句话

一套数据驱动的企业官网内容管理系统:站点上的每一段文案、每一个产品、每一项服务、每一条进展,都在后台可视化配置,改一个字段即时生效,不用改代码、不用重新构建。

本官网(tomarking.com/zry)就是由它驱动的 —— 我们不是拿它做演示,而是自己天天在用。


解决什么问题

大多数中小企业的官网是"写死的静态页":想改一句介绍、上一个新产品、更新一条动态,都要找开发改代码、重新部署。

结果是官网常年不更新,访客看到的是两三年前的信息。

这套系统的做法是把内容全部搬进数据库:

传统静态站官网 CMS
文案写在 HTML 里文案存在表里,后台表单改
改内容 = 改代码 + 发版改内容 = 后台点保存
只有开发能维护非技术人员也能维护
每次改动都有发布风险改错了改回来即可

它长什么样

站点内容分成互不耦合的若干"内容类型",每一种都是一套独立的列表 + 增删改 + 排序:

内容类型说明
站点设置公司信息 / SEO / 联系方式 / 社交账号,按分组渲染成表单
导航管理导航项增删改与排序
产品产品详情、亮点、场景、状态、排序
服务服务项、卖点、交付物、周期
价格档多档报价与说明
能力实证脱敏后的历史项目,作为能力背书
技术方向技术栈与擅长领域
文章Markdown 正文的文章系统
进展日志时间轴形态的"正在做什么",支持进度、状态、置顶
关联文档外部 Markdown 文档的锚点管理
视频号内容内容渠道与系列
优势条目"为什么选我"的主张 · 证据 · 图标

一个特性值得单独说:内容与文档解耦

站点上的"进展事件"和"关联文档"是分开的:

  • 进展事件记录什么时候发生了什么(日期、标题、状态、进度)
  • 关联文档记录详情内容在哪里(指向一份外部 Markdown)

这样有个好处:文档改了,外链不会断。

关联文档在库里存的是稳定短码(code),真正指向的那份 Markdown 由内容哈希决定。 文档内容更新后哈希变化,后台重导一次、短码不变,所有外部链接继续有效。 另外还有三层兜底:保存前校验、前台挂载前二次校验、后台一键体检,避免出现"点了打不开"的死链。


技术构成

项情况
后端Node.js + MySQL
Web 框架自研(HTTP / HTTPS / WebSocket,路由 / 会话 / JWT / 连接池 / 静态服务全自研)
前端原生 HTML + CSS + JavaScript,零框架、零打包、零构建
后台原生 SPA,同样零框架
数据表17 张
接口74 个(20 个公开 + 54 个 JWT 鉴权)
第三方依赖仅 10 个
代码规模83 个文件、约 17,000 行、1.2 MB
许可证Apache License 2.0

为什么坚持零打包:源文件改完刷新浏览器就能看到效果,不需要 npm run build。 对一个要长期自己维护的站点来说,少一层构建工具就少一类故障。

为什么把自研框架一起开源:仓库里直接包含 node/web/ 这个框架目录,克隆下来就能跑,不需要先去别处找依赖。


开源仓库

已在两个平台以 Apache-2.0 协议开源,可自由使用、修改、商用:

仓库内附部署说明(docs/部署说明.md)与环境变量样例(.env.example)。

关于脱敏:开源版已做完整脱敏处理 —— 生产环境的数据库地址、端口、账号、明文口令全部改为环境变量读取; JWT 签名密钥移除了内置默认值,强制从环境变量注入; SQL 初始化脚本里的管理员账号改为占位凭据(admin / admin123),联系电话与邮箱改为占位值。 仓库中不含任何可用的生产凭据。


适用对象

  • 需要一套能长期自己维护的官网的中小企业
  • 内容更新频繁(常上新、常改文案)的站点
  • 有投标、备案等场景,需要自主可控、可随时导出内容的官网
  • 想拿一套干净底座做垂直行业站的开发者

使用与二次开发

  • 想直接部署:按 docs/部署说明.md 建库、导入初始化 SQL、配好环境变量、启动即可
  • 想二次开发:业务代码集中在 node/zry/(约 6 个文件),接口路由表在 node/zry/http.js,

加一个接口就是往路由表里加一条;前端加页面就是加一个 HTML + 一个 JS

  • 想换掉前端:后端是纯 JSON 接口,前端可以整体替换成任何技术栈

状态

已上线运行,并已开源。持续迭代中。


志睿源(重庆)软件有限公司 | 中小企业与个人的 AI + 软件技术服务商

← 返回文章列表