Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
238 changes: 97 additions & 141 deletions CHANGELOG.md

Large diffs are not rendered by default.

57 changes: 30 additions & 27 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@ agree to abide by our [Code of Conduct](./CODE_OF_CONDUCT.md).

## Ways to Contribute

| Type | How |
| :--- | :-- |
| **Bug reports** | [Bug report](https://github.com/fecommunity/reactpress/issues/new?template=bug_report.md) — steps, component, versions, logs |
| **Feature ideas** | [Feature request](https://github.com/fecommunity/reactpress/issues/new?template=feature_request.md) — problem, solution, area |
| **Community tasks** | [Help wanted](https://github.com/fecommunity/reactpress/issues/new?template=help_wanted.md) — scoped tasks labeled `help wanted` on GitHub |
| Type | How |
| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |
| **Bug reports** | [Bug report](https://github.com/fecommunity/reactpress/issues/new?template=bug_report.md) — steps, component, versions, logs |
| **Feature ideas** | [Feature request](https://github.com/fecommunity/reactpress/issues/new?template=feature_request.md) — problem, solution, area |
| **Community tasks** | [Help wanted](https://github.com/fecommunity/reactpress/issues/new?template=help_wanted.md) — scoped tasks labeled `help wanted` on GitHub |
| **Product feedback** | [Feedback & suggestions](https://github.com/fecommunity/reactpress/issues/new?template=feedback.md) — UX and operator ideas (not security) |
| **Code & docs** | Fork, branch, submit a PR (see below) |
| **Security issues** | Follow [SECURITY.md](./SECURITY.md) — do **not** use public issues |
| **Code & docs** | Fork, branch, submit a PR (see below) |
| **Security issues** | Follow [SECURITY.md](./SECURITY.md) — do **not** use public issues |

## Security Contributors

We thank researchers who practice responsible disclosure and help keep ReactPress
secure. Valid reports are credited in [CHANGELOG.md](./CHANGELOG.md) and GitHub
Security Advisories when applicable.

| Contributor | Contribution |
| :---------- | :----------- |
| Contributor | Contribution |
| :---------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [lsr365400](https://github.com/lsr365400) | Reported SQL injection and stored XSS ([GHSA-wmw4-mw6x-6vfm](https://github.com/fecommunity/reactpress/security/advisories/GHSA-wmw4-mw6x-6vfm)); contributed fixes in [PR #83](https://github.com/fecommunity/reactpress/pull/83) |

## Development Setup
Expand Down Expand Up @@ -64,15 +64,15 @@ reactpress/

## Development Workflow

| Task | Command |
|------|---------|
| Full stack dev | `pnpm dev` |
| API only (watch) | `pnpm dev:api` or `pnpm dev:server` |
| Client only | `pnpm dev:client` |
| Docker MySQL + proxy | `pnpm docker:dev` |
| Regenerate API types | `pnpm run build:toolkit` |
| Swagger spec | `pnpm run generate:swagger` |
| API lifecycle | `pnpm run start` / `stop` / `restart` / `status` |
| Task | Command |
| -------------------- | ------------------------------------------------ |
| Full stack dev | `pnpm dev` |
| API only (watch) | `pnpm dev:api` or `pnpm dev:server` |
| Client only | `pnpm dev:client` |
| Docker MySQL + proxy | `pnpm docker:dev` |
| Regenerate API types | `pnpm run build:toolkit` |
| Swagger spec | `pnpm run generate:swagger` |
| API lifecycle | `pnpm run start` / `stop` / `restart` / `status` |

`pnpm dev` builds toolkit first, waits for API health, then starts the client.

Expand Down Expand Up @@ -128,10 +128,13 @@ pnpm login --registry https://registry.npmjs.org
# Interactive (choose beta/stable + version)
pnpm run publish:packages

# Promote 4.0 beta → stable (@latest)
NPM_OTP=123456 pnpm run publish:packages -- --tag latest --version 4.0.0 --yes

# Beta prerelease (uses package.json versions, npm tag: beta)
NPM_OTP=123456 pnpm run publish:packages -- --tag beta --yes

# Explicit version
# Explicit beta version
NPM_OTP=123456 pnpm run publish:packages -- --tag beta --version 4.0.0-beta.0 --yes

# Build artifacts only (no npm publish)
Expand All @@ -142,14 +145,14 @@ Published packages: **toolkit**, **web**, **server** (deprecated), **cli** (`@fe

## Architecture & Documentation

| Topic | Reference |
| :---- | :-------- |
| Platform overview | [docs/tutorial/intro.md](./docs/tutorial/intro.md) |
| ReactPress 3.0 | [docs/tutorial/tutorial-extras/reactpress-3-0.md](./docs/tutorial/tutorial-extras/reactpress-3-0.md) |
| Upgrade from 2.x | [docs/migration-2-to-3.md](./docs/migration-2-to-3.md) |
| Configuration | [docs/tutorial/tutorial-extras/config-intro.md](./docs/tutorial/tutorial-extras/config-intro.md) |
| Theme manifest schema | [themes/theme.manifest.schema.json](./themes/theme.manifest.schema.json) |
| Changelog | [CHANGELOG.md](./CHANGELOG.md) |
| Topic | Reference |
| :-------------------- | :--------------------------------------------------------------------------------------------------- |
| Platform overview | [docs/tutorial/intro.md](./docs/tutorial/intro.md) |
| ReactPress 3.0 | [docs/tutorial/tutorial-extras/reactpress-3-0.md](./docs/tutorial/tutorial-extras/reactpress-3-0.md) |
| Upgrade from 2.x | [docs/migration-2-to-3.md](./docs/migration-2-to-3.md) |
| Configuration | [docs/tutorial/tutorial-extras/config-intro.md](./docs/tutorial/tutorial-extras/config-intro.md) |
| Theme manifest schema | [themes/theme.manifest.schema.json](./themes/theme.manifest.schema.json) |
| Changelog | [CHANGELOG.md](./CHANGELOG.md) |

Live docs: [blog.gaoredu.com](https://blog.gaoredu.com)

Expand Down
8 changes: 4 additions & 4 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@
## 30 秒快速开始

```bash
npm i -g @fecommunity/reactpress@beta
npm i -g @fecommunity/reactpress
mkdir my-site && cd my-site
reactpress init
```

**环境要求:** [Node.js 20+](https://nodejs.org/) · 无需 Docker 或外部数据库

> 4.x 发布在 npm **`@beta`** 标签(`@latest` 仍为 3.x)
> 4.0 已发布在 npm **`@latest`**。仅预发布版本使用 `@beta`

| 入口 | 地址 |
| :----------- | :------------------------------------------------ |
Expand Down Expand Up @@ -303,7 +303,7 @@ SQLite 本地存储 · 离线编辑 · 远程 API 模式 · 同步到生产 · [
代号 **Extend** — 插件、桌面端、npm 主题。仍是 **一条 CLI、一套 Admin**。

```bash
npm i -g @fecommunity/reactpress@beta
npm i -g @fecommunity/reactpress
```

[4.0 指南](./docs/tutorial/tutorial-extras/reactpress-4-0.md) · [从 3.x 迁移](./docs/tutorial/tutorial-extras/migration-3-to-4.md)
Expand Down Expand Up @@ -392,7 +392,7 @@ Monorepo 贡献者请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md) 及各子包 RE
<details>
<summary><strong>4.0 能用于生产吗?</strong></summary>

4.0 处于 beta 阶段(撰写时为 `4.0.0-beta.18`)。已发布的 CLI 支持 `init`、`doctor`、`logs`、`stop`。生产环境升级前请阅读[迁移指南](./docs/tutorial/tutorial-extras/migration-3-to-4.md)。
4.0.0 为当前稳定版(npm `@latest`)。CLI 支持 `init`、`doctor`、`logs`、`stop`。从 3.x 升级请阅读[迁移指南](./docs/tutorial/tutorial-extras/migration-3-to-4.md)。

</details>

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,14 @@
## 30-second start

```bash
npm i -g @fecommunity/reactpress@beta
npm i -g @fecommunity/reactpress
mkdir my-site && cd my-site
reactpress init
```

**Requirements:** [Node.js 20+](https://nodejs.org/) · No Docker or external database

> 4.x 发布在 npm **`@beta`** 标签(`@latest` 仍为 3.x)。
> 4.0 is on npm **`@latest`**. Use `@beta` only for prereleases.

| Surface | URL |
| :-------------- | :----------------------------------------------- |
Expand Down Expand Up @@ -315,7 +315,7 @@ SQLite local storage · offline editing · remote API mode · sync to production
Codename **Extend** — plugins, desktop, npm themes. Still **one CLI, one Admin.**

```bash
npm i -g @fecommunity/reactpress@beta
npm i -g @fecommunity/reactpress
```

[4.0 guide](./docs/tutorial/tutorial-extras/reactpress-4-0.md) · [Migrate from 3.x](./docs/tutorial/tutorial-extras/migration-3-to-4.md)
Expand Down Expand Up @@ -404,7 +404,7 @@ Same admin-driven workflow, but a faster default theme, a cleaner headless path,
<details>
<summary><strong>Is 4.0 production-ready?</strong></summary>

4.0 is in active beta (`4.0.0-beta.18` at time of writing). The published CLI supports `init`, `doctor`, `logs`, and `stop`. See the [migration guide](./docs/tutorial/tutorial-extras/migration-3-to-4.md) before upgrading production.
4.0.0 is the current stable release on npm `@latest`. The CLI supports `init`, `doctor`, `logs`, and `stop`. See the [migration guide](./docs/tutorial/tutorial-extras/migration-3-to-4.md) before upgrading from 3.x.

</details>

Expand Down
24 changes: 12 additions & 12 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ ReactPress 3.x receives critical fixes on a best-effort basis during the 4.x rol
Older major versions (2.x and below) no longer receive security updates unless
noted in a release announcement.

| Version | Supported |
| :------ | :----------------- |
| 4.x | :white_check_mark: |
| Version | Supported |
| :------ | :--------------------- |
| 4.x | :white_check_mark: |
| 3.x | :warning: (transition) |
| 2.x | :x: |
| < 2.0 | :x: |
| 2.x | :x: |
| < 2.0 | :x: |

Install the latest release:

```bash
npm i -g @fecommunity/reactpress@beta
npm i -g @fecommunity/reactpress
```

## Reporting a Vulnerability
Expand All @@ -44,12 +44,12 @@ Include as much of the following as you can:

## What to Expect

| Timeline | Action |
| :------- | :----- |
| **Within 72 hours** | Acknowledgement of your report |
| **Within 7 days** | Initial assessment and severity classification |
| **Ongoing** | Status updates until resolved |
| **After fix** | Coordinated disclosure and credit in release notes (if desired) |
| Timeline | Action |
| :------------------ | :-------------------------------------------------------------- |
| **Within 72 hours** | Acknowledgement of your report |
| **Within 7 days** | Initial assessment and severity classification |
| **Ongoing** | Status updates until resolved |
| **After fix** | Coordinated disclosure and credit in release notes (if desired) |

We appreciate responsible disclosure. Valid reports may be credited in
[CHANGELOG.md](./CHANGELOG.md) unless you prefer to remain anonymous.
Expand Down
50 changes: 25 additions & 25 deletions cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@
>
> CMS, Admin, Headless API, Next.js themes, plugins & desktop — one CLI, zero assembly.

[![npm version](https://img.shields.io/npm/v/@fecommunity/reactpress/beta.svg?label=beta)](https://www.npmjs.com/package/@fecommunity/reactpress/v/beta)
[![npm latest](https://img.shields.io/npm/v/@fecommunity/reactpress.svg?label=latest)](https://www.npmjs.com/package/@fecommunity/reactpress)
[![npm beta](https://img.shields.io/npm/v/@fecommunity/reactpress/beta.svg?label=beta)](https://www.npmjs.com/package/@fecommunity/reactpress/v/beta)
[![npm downloads](https://img.shields.io/npm/dm/@fecommunity/reactpress.svg)](https://www.npmjs.com/package/@fecommunity/reactpress)
[![License: MIT](https://img.shields.io/npm/l/@fecommunity/reactpress.svg)](https://github.com/fecommunity/reactpress/blob/master/LICENSE)
[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat-square&logo=node.js&logoColor=white)](https://nodejs.org/)

The official **ReactPress CLI** — install a complete, self-hosted publishing stack in ~60 seconds. CMS API, Web Admin, and Next.js theme support ship together. No Docker, nginx, or external database required for local development.

| Layer | What you get |
| :---- | :----------- |
| **CMS API** | Headless NestJS REST — SQLite locally, MySQL in production |
| **Admin** | Writing console at `/admin/` — posts, pages, media, plugins, themes |
| **Themes** | npm-installable Next.js frontends — swap without touching content |
| **CLI** | `init`, `doctor`, `logs` — operate and diagnose from the terminal |
| Layer | What you get |
| :---------- | :------------------------------------------------------------------ |
| **CMS API** | Headless NestJS REST — SQLite locally, MySQL in production |
| **Admin** | Writing console at `/admin/` — posts, pages, media, plugins, themes |
| **Themes** | npm-installable Next.js frontends — swap without touching content |
| **CLI** | `init`, `doctor`, `logs` — operate and diagnose from the terminal |

Built for frontend teams who want WordPress-grade editing without wiring five repos together.

Expand All @@ -26,11 +26,11 @@ Built for frontend teams who want WordPress-grade editing without wiring five re
## Install

```bash
# 4.x pre-release (recommended until 4.0.0 stable)
npm install -g @fecommunity/reactpress@beta
# Stable 4.x (npm @latest)
npm install -g @fecommunity/reactpress

# stable (3.x — legacy)
# npm install -g @fecommunity/reactpress
# Prerelease channel
# npm install -g @fecommunity/reactpress@beta
```

Requires Node.js 20+. On first install, `postinstall` downloads bundled server runtime dependencies (~1–2 minutes).
Expand All @@ -42,22 +42,22 @@ mkdir my-site && cd my-site
reactpress init
```

| Surface | URL |
| :------ | :-- |
| **Public site** | http://localhost:3001 |
| **Admin** | http://localhost:3001/admin/ (`admin` / `admin`) |
| **API** | http://127.0.0.1:3002/api |
| Surface | URL |
| :-------------- | :----------------------------------------------- |
| **Public site** | http://localhost:3001 |
| **Admin** | http://localhost:3001/admin/ (`admin` / `admin`) |
| **API** | http://127.0.0.1:3002/api |

Run `reactpress doctor` if something does not start correctly.

## Commands

| Command | Description |
| :------ | :---------- |
| `reactpress init [dir]` | Initialize a new publishing site |
| Command | Description |
| :------------------------ | :---------------------------------------------- |
| `reactpress init [dir]` | Initialize a new publishing site |
| `reactpress doctor [dir]` | Diagnose Node.js, ports, database, and services |
| `reactpress logs [dir]` | Tail API logs (error / request / response) |
| `reactpress stop [dir]` | Stop API and site services |
| `reactpress logs [dir]` | Tail API logs (error / request / response) |
| `reactpress stop [dir]` | Stop API and site services |

## Requirements

Expand All @@ -67,11 +67,11 @@ Run `reactpress doctor` if something does not start correctly.

## Ecosystem

| Package | Role |
| :------ | :--- |
| Package | Role |
| :----------------------------------------------- | :---------------------------------------------------- |
| [`@fecommunity/reactpress-toolkit`](../toolkit/) | TypeScript SDK — API clients, theme SSR, plugin hooks |
| [`@fecommunity/reactpress-web`](../web/) | Admin SPA — static assets and Node mount helpers |
| [`@fecommunity/reactpress-server`](../server/) | Standalone API (deprecated — use CLI bundled API) |
| [`@fecommunity/reactpress-web`](../web/) | Admin SPA — static assets and Node mount helpers |
| [`@fecommunity/reactpress-server`](../server/) | Standalone API (deprecated — use CLI bundled API) |

## License

Expand Down
2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fecommunity/reactpress",
"version": "4.0.0-beta.18",
"version": "4.0.0",
"description": "ReactPress CLI — Publish with React. Ship like WordPress. CMS, Admin, Headless API, and Next.js themes in one command. Self-hosted, MIT. `npx @fecommunity/reactpress init`",
"author": "fecommunity",
"license": "MIT",
Expand Down
Loading
Loading