DoraCMS 3.0 重磅发布:现代化架构全面升级,双数据库支持开启新篇章
📢 版本概述
DoraCMS 团队正式发布 DoraCMS 3.0.0 版本!这是一个里程碑式的重大更新,标志着 DoraCMS 从传统架构全面升级为现代化的全栈 CMS 解决方案。本次更新带来了全新的技术架构、双数据库支持、完善的 Docker 部署方案以及更强大的开发体验。
🚀 核心亮点
1. 技术栈全面现代化
后端架构升级
-
✅ EggJS 3.x - 升级至最新版本,性能与稳定性大幅提升
-
✅ 双数据库支持 - 同时支持 MongoDB 和 MariaDB,灵活选择
-
✅ Repository 模式 - 统一的数据库适配层,业务逻辑与数据库解耦
-
✅ JWT 认证 - 现代化的身份认证机制
-
✅ Redis 缓存 - 可选的高性能缓存支持
前端架构革新
-
✅ Vue 3 + TypeScript - 采用 Composition API,类型安全
-
✅ Vite 6.x - 极速构建工具,开发体验提升
-
✅ Element Plus - 现代化 UI 组件库
-
✅ Pinia - 新一代状态管理方案
-
✅ UnoCSS - 原子化 CSS 引擎,样式开发更高效
工程化升级
-
✅ pnpm Monorepo - 统一管理多模块项目
-
✅ TypeScript 全覆盖 - 管理后台全面 TypeScript 化
-
✅ ESLint + Prettier - 严格的代码规范检查
-
✅ Husky + lint-staged - Git 提交自动检查
2. 双数据库架构(Database Agnostic)
DoraCMS 3.0 引入了创新的 Repository 模式,实现了业务逻辑与数据库的完全解耦:
Service Layer (业务逻辑)
↓
IRepository Interface (统一接口)
↓
┌─────────────┬─────────────┐
│ MongoDB │ MariaDB │
│ Adapter │ Adapter │
└─────────────┴─────────────┘
核心优势:
-
🔄 灵活切换 - 无需修改业务代码即可切换数据库
-
🧪 易于测试 - 统一的接口便于单元测试
-
📈 平滑迁移 - 支持 MongoDB ↔ MariaDB 数据迁移
-
🛡️ 降低风险 - 数据库选择不再绑定业务逻辑
数据库特性对比:
|
特性 |
MongoDB |
MariaDB |
|---|---|---|
|
版本 |
6.0 |
11.2 |
|
驱动 |
Mongoose |
Sequelize |
|
字符集 |
UTF-8 |
utf8mb4 |
|
事务支持 |
✅ |
✅ |
|
性能优化 |
✅ |
✅ |
3. Docker 部署方案完善
一键部署,开箱即用
# 快速启动(MongoDB 模式)
./docker-quickstart.sh
# MariaDB 模式
./docker-quickstart.sh --database mariadb
# 完整堆栈(数据库 + Redis + Nginx)
./docker-quickstart.sh --full
Docker Compose Profile 支持:
-
default- MongoDB + 应用 -
mariadb- MariaDB + 应用 -
redis- Redis 缓存 -
nginx- Nginx 反向代理 -
full- 完整生产环境堆栈
部署特性:
-
🐳 容器化部署 - 完整的 Docker 支持
-
🔄 自动初始化 - 数据库自动创建和初始化
-
📊 健康检查 - 内置服务健康监控
-
🔐 安全配置 - 生产环境安全最佳实践
-
📝 完整文档 - 详细的部署和故障排除指南
4. 国际化支持
-
🌍 多语言支持 - 服务端和前端完整国际化
-
🔍 智能检测 - 自动根据 URL、Cookie、Accept-Language 选择语言
-
📦 统一管理 - 所有接口使用统一的国际化 key
-
🎨 Nunjucks 集成 - 模板引擎完整支持国际化
5. 开发体验提升
Monorepo 架构
egg-cms/
├── server/ # EggJS 后端服务
├── client/
│ ├── user-center/ # Vue3 用户前端
│ └── admin-center/ # Vue3 + TypeScript 管理后台
└── package.json # 根目录配置
便捷的开发命令:
# 安装依赖
pnpm install
# 并行启动所有项目
pnpm dev:all
# 单独启动
pnpm dev:server # 后端 (7001)
pnpm dev:user-center # 用户前端 (3000)
pnpm dev:admin-center # 管理后台 (5173)
# 代码检查
pnpm lint
pnpm format
📦 项目结构
DoraCMS/
├── server/ # EggJS 后端
│ ├── app/
│ │ ├── controller/ # 控制器
│ │ ├── service/ # 业务逻辑
│ │ ├── repository/ # 数据访问层(Repository 模式)
│ │ ├── model/ # 数据模型
│ │ └── view/ # Nunjucks 模板
│ └── config/ # 配置文件
├── client/
│ ├── user-center/ # Vue3 用户前端
│ └── admin-center/ # Vue3 + TS 管理后台
├── docker/ # Docker 配置
│ ├── docker-compose.yml # Docker Compose 配置
│ └── entrypoint.sh # 启动脚本
└── scripts/ # 工具脚本
🎯 主要改进
性能优化
-
⚡ Vite 6.x 构建速度提升 50%+
-
🚀 EggJS 3.x 性能优化
-
💾 Redis 缓存支持(可选)
-
📦 代码分割和懒加载
安全性增强
-
🔐 JWT 认证机制
-
🛡️ XSS 防护
-
🔒 参数验证
-
🚫 CORS 配置
可维护性提升
-
📝 TypeScript 类型安全
-
🧪 单元测试支持
-
📚 完整文档
-
🔍 代码规范检查
📚 文档资源
-
📖 项目文档: www.doracms.net
🚀 快速开始
环境要求
-
Node.js >= 14.0.0 (推荐 18.x)
-
pnpm >= 8.0.0
-
MongoDB 或 MariaDB
-
Redis(可选)
安装步骤
# 1. 克隆项目
git clone https://github.com/doramart/DoraCMS.git
cd DoraCMS
# 2. 安装依赖
pnpm install
# 3. 启动开发服务器
pnpm dev:all
Docker 部署
# 使用快速启动脚本
./docker-quickstart.sh
# 或使用 Docker Compose
docker compose up -d
🔄 从 2.x 升级
主要变更
-
架构变更 - Monorepo 架构,需要重新安装依赖
-
数据库支持 - 新增 MariaDB 支持,MongoDB 继续支持
-
前端升级 - Vue 2 → Vue 3,需要适配
-
构建工具 - Webpack → Vite
🌟 适用场景
-
📰 内容管理系统 - 博客、新闻、文档站点
-
🏢 企业官网 - 公司官网、产品展示
-
📚 知识库系统 - 内部文档、知识管理
-
🎨 定制化 CMS - 基于 DoraCMS 二次开发
🤝 贡献与反馈
DoraCMS 3.0 是一个开源项目,欢迎社区贡献:
-
🐛 报告问题: GitHub Issues
-
💡 功能建议: 提交 Issue 或 Pull Request
-
📝 文档改进: 帮助完善文档
-
⭐ Star 支持: 如果觉得项目不错,请给个 Star
📄 许可证
MIT License
🔗 相关链接
-
Gitee: https://gitee.com/doramart/DoraCMS
-
文档站点: https://www.doracms.net
DoraCMS 3.0 - 现代化、灵活、强大的内容管理系统
让内容管理更简单,让开发更高效!