📦 GitHub: doramart/DoraCMS | 📖 文档: www.doracms.net | 🌐 English: README.en.md
一个基于 EggJS 3.x + Vue 3 + TypeScript 的现代化内容管理系统,采用 pnpm monorepo 架构管理。
本项目采用 monorepo 架构,包含三个主要模块:
egg-cms/
├── server/ # EggJS 后端服务
├── client/
│ ├── user-center/ # Vue3 用户前端
│ └── admin-center/ # Vue3 + TypeScript 管理后台
└── package.json # 根目录配置
- 框架: EggJS 3.x
- 数据库: MongoDB + Mongoose / MariaDB + Sequelize(双数据库支持)
- 认证: JWT
- 缓存: Redis(可选)
- 文件上传: 支持阿里云 OSS、七牛云
- 部署: Docker + Docker Compose
- 框架: Vue 3 + Composition API
- 构建工具: Vite 4.x
- UI库: Element Plus
- 状态管理: Pinia
- 国际化: Vue i18n
- 框架: Vue 3 + TypeScript
- 构建工具: Vite 6.x
- UI库: Element Plus
- 样式: UnoCSS + Sass
- 状态管理: Pinia
- 图表: Echarts、@antv/g2
- 富文本: @wangeditor/editor
- 服务端启用了
localeDetector中间件,自动根据 URL、Cookie 与Accept-Language选择语言,并同步到 session。 - 所有后台接口均使用统一的国际化 key(
common.*、template.*、mail.*等),可在server/config/locale中扩展。 - Nunjucks 过滤器与日期工具会读取当前请求的
ctx.locale,保持页面渲染与接口返回一致。
- Node.js >= 14.0.0 (推荐 18.x)
- pnpm >= 8.0.0
- MongoDB 或 MariaDB
- Redis(可选)
- Docker >= 20.10
- Docker Compose >= 2.0
# 克隆项目
git clone https://github.com/doramart/DoraCMS.git
cd DoraCMS
# 安装所有项目依赖
pnpm install# 同时启动服务端和用户前端
pnpm dev
# 启动所有项目(并行)
pnpm dev:all
# 单独启动项目
pnpm dev:server # 启动后端服务 (端口: 7001)
pnpm dev:user-center # 启动用户前端 (端口: 3000)
pnpm dev:admin-center # 启动管理后台 (端口: 5173)# 构建所有项目
pnpm build
# 单独构建
pnpm build:server
pnpm build:user-center
pnpm build:admin-centerpnpm dev- 启动服务端 + 用户前端pnpm dev:all- 并行启动所有项目pnpm dev:server- 仅启动后端服务pnpm dev:user-center- 仅启动用户前端pnpm dev:admin-center- 仅启动管理后台
pnpm build- 构建所有项目pnpm build:server- 构建后端pnpm build:user-center- 构建用户前端pnpm build:admin-center- 构建管理后台
pnpm lint- 检查所有项目代码pnpm lint:server- 检查后端代码pnpm lint:user-center- 检查用户前端代码pnpm lint:admin-center- 检查管理后台代码pnpm format- 格式化所有代码
pnpm clean- 清理所有 node_modulespnpm clean:server- 清理后端依赖pnpm clean:user-center- 清理用户前端依赖pnpm clean:admin-center- 清理管理后台依赖
pnpm plugin:install- 安装服务端插件pnpm plugin:build- 构建插件pnpm plugin:clean- 清理插件
- 用户前端: http://localhost:3000
- 管理后台: http://localhost:5173
- 后端 API: http://localhost:7001
📖 完整部署文档: Docker 部署指南
# 1. 克隆项目
git clone https://github.com/doramart/DoraCMS.git
cd DoraCMS
# 2. 使用快速启动脚本
./docker-quickstart.sh
# 或使用 Docker Compose
docker compose up -d# 启动 MongoDB 模式
docker compose up -d
# 查看日志
docker compose logs -f eggcms-app# 启动 MariaDB 模式
docker compose --profile mariadb up -d
# 查看日志
docker compose logs -f eggcms-app-mariadb# 启用 Redis 缓存
docker compose --profile redis up -d
# 启用 Nginx 反向代理
docker compose --profile nginx up -d
# 完整堆栈 (MongoDB + Redis + Nginx)
docker compose --profile full up -d
# 完整堆栈 (MariaDB + Redis + Nginx)
docker compose --profile mariadb --profile redis --profile nginx up -d# 复制环境变量模板
cp docker.env.example .env
# 编辑配置(重要:修改安全相关配置)
vim .envAPP_KEYS- 应用密钥SESSION_SECRET- 会话密钥- 数据库密码
生成随机密钥:
# 使用 Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# 或使用 OpenSSL
openssl rand -hex 32💡 提示: 更多详细的 Docker 部署说明、数据持久化、健康检查、故障排除等内容,请查看 完整的 Docker 部署指南
- Docker 部署指南 - 完整的 Docker 部署文档(推荐)
- Docker 部署指南(本地) - 本地 Docker 部署文档
- 开发指南 - 本地开发和项目结构
- 数据库迁移指南 - MongoDB ↔ MariaDB 迁移
- Repository 模式 - 数据库适配层文档
- SoybeanAdmin - 管理后台基于 SoybeanAdmin 二次开发
欢迎提交 Pull Request 和 Issue!
MIT License
# 为服务端添加依赖
pnpm --filter "./server" add package-name
# 为用户前端添加依赖
pnpm --filter "./client/user-center" add package-name
# 为管理后台添加依赖
pnpm --filter "./client/admin-center" add package-name# 清理所有依赖并重新安装
pnpm clean
pnpm installadmin-center 需要 Node.js >= 18.20.0,如果版本不兼容,请使用 nvm 切换版本:
nvm use 18
# 或者
nvm install 18.20.0
nvm use 18.20.0项目使用 ESLint 和 Prettier 进行代码规范检查和格式化。提交代码时会自动运行 lint-staged 进行检查。