一、速览

入门

DoraCMS 是一款内容管理系统(CMS)。你可以把它理解成网站的后台仓库:平时写文章、传图片、管理页面,不需要自己写代码,点几下鼠标就能发布内容。它基于 EggJS(一套运行在服务器上的 Node.js 服务端框架,相当于后台的“管家”)和 Vue 3(用来构建网页界面的前端技术)开发,界面现代,响应速度快。

这个项目最大的亮点是内置了 AI 内容发布 功能,你可以接入大模型 API,让系统帮你自动生成文章初稿,再手动修改发布。对于想快速搭建官网、博客、企业站,又不想从零开发的人来说,DoraCMS 是一条捷径。

它的另一个特点是前后端分离:后台管理界面和用户前台分开,互不干扰,后期扩展也方便。官方提供了在线演示,你可以先在浏览器里体验后台操作,再决定是否自己部署。

二、快速部署

入门

部署 DoraCMS 最简单的方式是用 Docker。Docker 是一种把软件打包成“集装箱”的工具,无论你的服务器是什么系统,只要装了 Docker,就能用同样的命令把项目跑起来。下面按步骤来。

前置条件

  • 一台能联网的 Linux 服务器(本地电脑也可以,但服务器更适合长期运行)
  • 已安装 Docker(版本 20.10 以上)和 Docker Compose(版本 2.0 以上)
  • 如果你选择用 MariaDB 或 MongoDB 作为数据库,Docker 会自动帮你启动对应的数据库容器,所以本机不需要额外安装数据库

第一步:获取项目代码

git clone https://github.com/doramart/DoraCMS.git
cd DoraCMS

第二步:准备环境变量文件

项目提供了一个模板文件,我们复制一份并命名为 .env。这个文件里存着各种配置,相当于软件的“个人信息表”。

cp docker.env.example .env

然后编辑 .env,至少修改三个关键值:APP_KEYSSESSION_SECRET、数据库密码。可以用下面的命令生成随机密钥,粘贴进去。

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

或者用 OpenSSL:

openssl rand -hex 32

注意:不要使用默认值或网上公开的示例密钥,否则别人可能伪造你的登录状态。

第三步:启动容器

在项目根目录执行 Docker Compose 命令。下面示例启动了 MariaDB、Redis 和 Nginx 三个服务,你可以按需选择 profile(比如只用 MongoDB 就不加 --profile mariadb)。

docker compose --profile mariadb --profile redis --profile nginx up -d

启动完成后,打开浏览器访问 http://你的服务器IP,就能看到前台页面。后台地址是 http://你的服务器IP/admin-center。第一次登录的账号密码需要根据项目文档或启动日志确认,建议登录后立即修改。

三、配置详解

进阶 · 推荐细读

上一节提到的 .env 文件里有很多变量,这里挑几个重要的说明。

变量名 用途 是否必须修改
APP_KEYS 应用密钥,用于加密 Cookie 等敏感数据 生产环境必须改
SESSION_SECRET 会话密钥,防止用户登录状态被伪造 生产环境必须改
数据库密码 MongoDB 或 MariaDB 的连接密码 生产环境必须改
数据库名/用户名 数据库连接信息 按需修改

数据卷与持久化

Docker 容器一旦删除,容器内部的文件会消失。但 DoraCMS 的数据库和上传文件通常存储在 Docker 卷(Volume)中,这相当于一个外接硬盘,容器删了数据还在。你可以用 docker volume ls 查看自动创建的卷。建议不要手动删除这些卷,否则文章和图片会丢失。

端口说明

默认情况下 Nginx 监听 80(HTTP)和 443(HTTPS)端口。如果服务器上已经有其他网站占用了 80 端口,你需要修改 docker-compose 配置文件里的端口映射,比如把 80:80 改成 8080:80,然后通过 http://服务器IP:8080 访问。

四、功能导览

入门

进入后台后,你会看到左侧菜单,主要功能都集中在这里。

DoraCMS 管理后台界面

内容管理

这是最常用的模块,你可以在这里创建文章、分类、标签,设置封面图和发布时间。操作逻辑类似 WordPress,但界面更简洁。编辑文章时支持富文本和 Markdown 两种方式,满足不同习惯。

DoraCMS 内容管理页面

AI 内容发布

这是 DoraCMS 的特色功能。在写文章时,可以输入关键词或主题,系统会调用你事先配置好的 AI 模型接口,自动生成一段正文。生成的内容只是初稿,你需要自己审核和修改,避免直接发布不准确的信息。

DoraCMS AI 内容发布页面

模型管理

在使用 AI 功能之前,你需要先在这里添加一个 AI 模型,填写模型提供商的 API 地址和密钥。常见的如 OpenAI、通义千问等都支持自定义接口地址,具体参数可以参考对应平台的文档。

用户中心

前台用户可以注册、登录,查看自己的文章和评论。管理员可以在后台管理用户权限,设置哪些用户能发布内容、哪些只能浏览。

五、常见问题与运维建议

进阶 · 推荐细读

端口冲突怎么办?

如果 80 或 443 端口被占用,最简单的办法是修改 docker-compose 里的端口映射。找到 ports 部分,把左侧的宿主机端口改成未占用的端口,例如 8080:80。然后重启容器即可。

如何配置 HTTPS?

生产环境建议启用 HTTPS,否则浏览器会提示“不安全”。你可以把 DoraCMS 放在 Nginx 反向代理后面。反向代理就像一个前台接待,所有外部请求先经过它,再由它转发给后台服务。Nginx 配置示例如下:

server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate     /etc/ssl/certs/your-cert.pem;
    ssl_certificate_key /etc/ssl/private/your-key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

proxy_pass 指向你实际映射的端口即可。SSL 证书可以用 Let's Encrypt 免费申请,网上有很多教程,这里不展开。

数据备份怎么做?

最稳妥的方式是备份数据库。如果你用的是 MongoDB,可以通过 mongodump 命令导出;如果是 MariaDB,可以用 mysqldump。同时也要备份 .env 文件和上传的图片目录(通常在 Docker 卷中)。建议设置定时任务,每天自动备份一次。

项目如何升级?

升级前务必先备份数据库和 .env。然后进入项目目录,拉取最新代码,重新构建镜像并重启容器。

git pull
docker compose build
docker compose up -d

升级后检查后台是否能正常登录,AI 模型配置是否还在。如果遇到问题,可以查看容器日志定位原因:docker compose logs -f

完成以上步骤后,你已经拥有了一个功能完整的 CMS 网站。下一步可以探索主题定制、用户权限细分,或者接入更多 AI 模型,让内容生产更高效。

项目信息

项目
仓库 doramart/DoraCMS
语言 JavaScript
Star 3,542
Fork 1,034
主页 https://www.doracms.net

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: