跳到主要内容

面向 React 的自托管 CMS

在找 面向 React 的自托管 CMS — 不是 SaaS Headless 套餐,不是 PHP 栈,也不是五个仓库硬拼?

ReactPress 是面向 React 开发者的开源 自托管发布平台:Admin + NestJS API + Next.js 主题 + 插件 + 可选桌面客户端,一条 CLI 启动。内容与媒体留在 你自己的 机器或服务器上。

npm i -g @fecommunity/reactpress@beta
mkdir my-cms && cd my-cms
reactpress init

默认路径:SQLite,无需 Docker,无需云账号。

这里的「自托管」指什么

你掌控ReactPress 如何支持
数据在哪本地 .reactpress/reactpress.db(SQLite)或自有 MySQL
代码跑在哪笔记本、VPS、Docker 主机或私有云
谁能写作你的 Admin 用户 / 桌面客户端 — 不是厂商后台
站点如何渲染你的 Next.js 主题进程;可随时替换或 fork
许可MIT — 可 fork、可商用,无按席位收费

生产站点示例:blog.gaoredu.com

为什么 React 团队选择自托管 ReactPress

1. 一个产品,而不是拼装

常见 DIY:Strapi/Payload + 自研 Admin + Next.js 博客 + 上传服务 + SEO 胶水。

ReactPress 已把 发布表面 接好:

  • 在 Admin(或 桌面端)写作
  • 用 Next.js 主题服务访客(SSR SEO)
  • 需要时再暴露 Headless REST

详见 ReactPress 是什么?

2. 原生 React 交付

访客主题是 Next.js,Admin 是 React,API 是 NestJS,扩展是 JavaScript Hook — 没有 PHP 主题层。方案对比见 ReactPress vs WordPress

3. 合理默认,扩展时有退路

阶段数据库 / 运行时
本地 / 小站嵌入式 SQLite(默认)
更高流量 / 共享库外部 MySQL
容器化运维Docker 部署
离线作者Electron 桌面端 + 同步远程 API

配置概览:配置说明

运维视角架构

  • Admin:3001/admin/ — 内容、媒体、主题、插件、设置
  • 主题:3001 — 公开 SSR 站点
  • API:3002 — 持久化、鉴权、Hook、Headless

边界:核心概念 · 系统架构

安全与数据主权清单

上线前请确认:

  1. 修改默认 admin / admin
  2. .reactpress/config.json / 生成的 .env 中设好公网 URL 与密钥
  3. 按需用反代或网络策略限制 Admin
  4. 备份 reactpress.db(或 MySQL)以及 uploads/
  5. 启用 SEO 插件,检查主题侧 sitemap / canonical

指南:生产环境部署 · 站点设置与 SEO

插件是受信任代码

已启用插件会加载进 API 进程(类似 WordPress)。只安装可信插件;通过具备权限的 Admin 角色管理。

自托管 vs SaaS Headless

ReactPress(自托管)典型 SaaS Headless
数据位置你的磁盘 / 你的数据库厂商云
管理后台内置内置(厂商 UX)
访客站内置 Next.js 主题需自建或另购
费用MIT + 自有基础设施席位 / API / 流量
离线写作桌面客户端少见

要零运维选 SaaS;要 React 栈 + 完整发布 + 数据驻留 选 ReactPress。

上线路径

路径适合
60 秒 Next.js 博客本地快速验证
第一个站点教程带引导的 Admin 走查
生产部署VPS / Node 进程
Docker容器主机
Headless API自有 React 前端对接你的 API

常见问题

自托管免费吗?
软件 MIT。你只需支付自己的算力、存储与域名。

需要 Kubernetes 吗?
不需要。很多站点用单机 Node + SQLite 或 MySQL 即可。

以后能搬迁吗?
可以 — 经 API 导出、迁移数据库文件,或让新主题指向同一 API。

4.0 适合自托管生产吗?
核心 init / doctor 在 active beta 中已较稳定;请先预发,并阅读 3.x → 4.0 迁移。更多见 FAQ

博客延伸阅读