阿美巴官网与 CMS

阿美巴企业管理咨询官网项目,包含客户前台、CMS 后端和 CMS 管理后台。前台是 Vite + React SPA,业务文案由 CMS 提供,CMS 使用 MySQL 保存正式数据。

本地运行

前台

npm install
npm run dev       # http://localhost:15173
npm run build     # 类型检查并生成 dist/
npm run preview   # http://localhost:14173
npm run typecheck

开发服务器会把 /api 和 /uploads 代理到 http://127.0.0.1:13001。如果需要本地联调 CMS,请先启动后端。

CMS 后端

cd cms/server
npm install
npm start         # 默认监听 13001

健康检查:http://127.0.0.1:13001/health。CMS 管理后台源码位于 cms/admin,如需重新构建:

cd cms/admin
npm install
npm run build

后端会从 cms/admin/dist 提供 /admin 页面。

环境变量

项目不提交 .env,因为其中可能包含数据库和后台登录敏感信息。CMS 后端支持以下变量:

CMS_PORT=13001
DB_HOST=127.0.0.1
DB_PORT=33306
DB_USER=admin
DB_PASSWORD=请填写数据库密码
DB_NAME=ameiba_cms
DB_CONNECTION_LIMIT=10
JWT_SECRET=请填写随机且长期不变的密钥
CMS_ADMIN_PASSWORD=首次初始化后台密码
CONTENT_INGEST_TOKEN=请填写内容判断引擎专用随机密钥
CONTENT_INGEST_RATE_LIMIT=30
PUBLIC_SITE_URL=https://www.ameiba.cn

生产环境使用 MySQL;cms.db 仅用于历史 SQLite 数据迁移,不作为当前生产数据库。不要把真实 .env、数据库备份或上传文件提交到 Git。

内容判断引擎通过独立的内部发布接口向“认知观察”新增或更新文章,不复用后台 JWT。协议、鉴权、请求示例和幂等规则见 docs/内容判断引擎文章发布API.md。

CMS 内容对应关系

后台地址:/admin/。保存后的已发布内容由 /api/cms/public 提供,前台刷新后读取最新内容。

后台栏目 前台内容
全局配置 网站标题、Slogan、联系方式、地址、二维码等公共内容
全站文案 首页、页脚、按钮及公共提示文案
首页模块 首页 Hero、模块标题和说明
阿美巴页面 品牌定位、使命、哲学、实践、专家
企业进化 企业进化思想、四大价值、A/M/B 三态
方法与能力 八步闭环、十大系统
产品服务 服务名称、描述、价格、状态和排序
实践案例 案例标题、行业及完整案例内容
认知观察 文章标题、分类、摘要和正文
自我对照 自我对照引导文案
诊断问卷 / 配置 题目、选项、权重、阈值和结果模板

前台仍保留本地 fallback 文案,用于 CMS 暂时不可用时保证页面结构可显示;生产内容应在后台发布并以数据库内容为准。

生产部署

当前部署约定:

  • 前台代码与构建目录:/var/www/ameiba-cn-new
  • CMS 后端:/var/www/ameiba-cn-new/cms/server
  • CMS 管理后台源码与构建目录:/var/www/ameiba-cn-new/cms/admin
  • CMS 进程:Node.js,监听 127.0.0.1:13001,由进程管理器保持运行
  • 数据库:MySQL,默认端口 33306
  • Nginx:网站 HTTPS 对外提供前台和 /api、/admin 反向代理

前台更新流程:

cd /var/www/ameiba-cn-new
git pull --ff-only origin main
npm install
npm run build

生产服务器已安装一键更新命令:

ameiba-update

脚本源码位于 scripts/update-and-restart.sh。它会先备份 MySQL,再快进拉取 main、安装依赖、构建前台与 CMS 管理后台、重启 ameba-cms、保存 PM2 进程清单并执行健康检查。若服务器存在未提交的受版本控制文件修改,脚本会停止,避免覆盖人工修改。

更新 CMS 后端或后台后,需要在对应目录安装依赖并重启 CMS 进程;仅更新前台 dist 不需要重启后端。部署前应备份 MySQL、上传目录和当前构建目录。

联系方式与移动端行为

  • 页脚电话使用 tel: 链接,手机点击可直接拨号。
  • 邮箱使用 mailto: 链接,手机和电脑会交给系统默认邮件客户端。
  • 公司地址在 iPhone Safari 中使用高德官方 iosamap://path 深链;Android 使用 geo:。电脑端使用高德网页搜索。
  • 微信内置浏览器通常限制外部地图 App 调起,需要通过右上角菜单选择“在 Safari 中打开”。
  • 页脚二维码文件位于 public/images/xcx.jpg 和 public/images/fwh.jpg,构建后对应 /images/xcx.jpg、/images/fwh.jpg。

Git 约定

默认分支为 main。提交前至少执行:

npm run build
git status
git add <文件>
git commit -m "用中文填写本次变更说明"
git push origin main

不要提交 node_modules、dist、.env、生产数据库文件或上传目录;如需发布前台,服务器会在拉取代码后重新构建 dist。

目录结构

src/                       前台源码
  pages/                   页面
  components/Layout/       导航、页脚、公共 CTA 和移动端布局
  services/cms.ts          CMS 公共内容请求与 fallback
  models/types.ts          前台数据类型
cms/server/                CMS API、鉴权、MySQL 访问、迁移脚本
cms/admin/                 CMS 管理后台源码
public/images/             Logo 与页脚二维码
docs/                      部署、迁移和验收相关文档
dist/                      前台构建产物(本地生成)
S
Description
升级版传统官网
Readme
399 KiB
Languages
TypeScript 53.2%
JavaScript 39.1%
CSS 6.3%
Shell 1%
HTML 0.4%