Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5e520fd
refactor: merge master
fecommunity Jul 11, 2026
22c1282
feat: add support for bundled toolkit and server runtime installation
fecommunity Jul 11, 2026
8f6a66c
refactor: update CLI and README for zero-dependency mode
fecommunity Jul 11, 2026
736a155
docs: update README and CLI for improved setup instructions and zero-…
fecommunity Jul 11, 2026
a6c576e
chore: enhance CLI setup and packaging process
fecommunity Jul 11, 2026
0b0aea5
chore: update CLI and documentation for enhanced logging and theme ma…
fecommunity Jul 11, 2026
db743c4
chore: enhance CLI and admin management features
fecommunity Jul 11, 2026
8958be9
feat: implement theme API proxy patching and enhance CLI theme instal…
fecommunity Jul 11, 2026
abd66aa
chore: update package metadata and documentation for improved clarity
fecommunity Jul 11, 2026
9977b2c
chore: promote 4.x to stable release and update documentation
fecommunity Jul 11, 2026
92e5343
chore: update .gitignore and add Vite hooks for commit management
fecommunity Jul 11, 2026
717f09f
chore: bump version to 4.0.0-beta.15 across all packages
fecommunity Jul 11, 2026
735aca2
chore: update project configuration and enhance plugin management
fecommunity Jul 11, 2026
c871f12
chore: bump version to 4.0.0-beta.18 across all packages
fecommunity Jul 11, 2026
6e3f9d4
chore: restructure environment configuration and enhance documentation
fecommunity Jul 11, 2026
ae83ca9
chore: update documentation and enhance sidebar structure
fecommunity Jul 11, 2026
68a0ad9
chore: update package metadata and improve server script functionality
fecommunity Jul 11, 2026
efcd105
docs: enhance documentation and add new pages for improved user guidance
fecommunity Jul 11, 2026
866a0f3
chore: integrate Algolia DocSearch support into documentation site
fecommunity Jul 11, 2026
d0f9b4a
docs: enhance changelog navigation and sidebar components
fecommunity Jul 11, 2026
25bdc46
docs: update tagline and enhance CLI command block
fecommunity Jul 11, 2026
c916f65
docs: enhance styling and layout for CLI command block and logo compo…
fecommunity Jul 11, 2026
cd54656
docs: add titleDelimiter to configuration for improved site title for…
fecommunity Jul 11, 2026
dfb55f7
chore: add reusable workflow for building desktop installers across p…
fecommunity Jul 11, 2026
0040328
refactor: update build script to use runBuild function for production…
fecommunity Jul 11, 2026
a750630
docs: add version tags for beta and latest releases in hero section
fecommunity Jul 12, 2026
a4a3483
docs: update tagline and enhance feature descriptions for clarity
fecommunity Jul 12, 2026
dbee28c
Merge branch 'master' of https://github.com/fecommunity/reactpress in…
fecommunity Jul 12, 2026
b13a513
refactor: remove unused binary images from the public directory and u…
fecommunity Jul 12, 2026
0ae3618
feat: add new admin media images and update existing usage GIF
fecommunity Jul 12, 2026
0f1826e
docs: update installation instructions to reflect beta release and ad…
fecommunity Jul 12, 2026
ac977a0
chore: update descriptions and taglines across documentation and CLI
fecommunity Jul 12, 2026
1eaad63
docs: update docs
fecommunity Jul 12, 2026
8fb0ae3
docs: enhance README with additional taglines for clarity
fecommunity Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 0 additions & 13 deletions .env

This file was deleted.

34 changes: 34 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# ReactPress — local development template
# Copy to `.env` in the repo root: cp .env.example .env
# Do not commit `.env` (secrets and machine-specific paths belong there only).
# `reactpress init` usually generates this for you; use this file when contributing to the monorepo.

# --- Database (default: embedded SQLite, no Docker) ---
# DB_TYPE=sqlite uses DB_DATABASE as the SQLite file path.
# For MySQL via Docker, use reactpress init / embedded-docker and DB_HOST/DB_PORT/DB_USER/DB_PASSWD instead.
DB_TYPE=sqlite
DB_DATABASE=.reactpress/reactpress.db

# --- API server (NestJS) ---
SERVER_PORT=3002
SERVER_SITE_URL=http://localhost:3002
SERVER_API_PREFIX=/api

# --- Visitor theme (Next.js) public URL ---
CLIENT_SITE_URL=http://localhost:3001

# --- Media uploads (relative to project root) ---
REACTPRESS_UPLOAD_DIR=uploads

# --- Bootstrap admin (first start only; change after login) ---
ADMIN_USER=admin
ADMIN_PASSWD=admin

# --- CLI / server UI language: en | zh ---
REACTPRESS_LANG=en

# --- Docs site (Docusaurus) — optional overrides ---
# DOCS_SITE_URL=https://docs.gaoredu.com
# DOCS_ALGOLIA_APP_ID= # default baked into docs/src/seo/algolia.ts
# DOCS_ALGOLIA_API_KEY=
# DOCS_ALGOLIA_INDEX_NAME=
73 changes: 64 additions & 9 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,63 @@ module.exports = {
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
parserOptions: {
sourceType: 'module',
ecmaVersion: 'latest',
},
overrides: [
{
files: ['**/*.{ts,tsx,js,jsx}'],
files: ['web/**/*.{ts,tsx}'],
parserOptions: {
project: ['./web/tsconfig.eslint.json'],
tsconfigRootDir: __dirname,
},
},
{
files: ['toolkit/**/*.ts'],
parserOptions: {
project: ['./toolkit/tsconfig.json'],
tsconfigRootDir: __dirname,
},
},
{
files: ['server/**/*.ts'],
parserOptions: {
project: ['./client/tsconfig.json'],
project: ['./server/tsconfig.json'],
tsconfigRootDir: __dirname,
sourceType: 'module',
},
},
{
files: ['docs/**/*.{ts,tsx}'],
parserOptions: {
project: ['./docs/tsconfig.eslint.json'],
tsconfigRootDir: __dirname,
},
},
{
files: ['themes/hello-world/**/*.{ts,tsx}'],
parserOptions: {
project: ['./themes/hello-world/tsconfig.eslint.json'],
tsconfigRootDir: __dirname,
},
},
{
// Next.js regenerates next-env.d.ts with /// <reference path="…" /> for route types.
files: ['**/next-env.d.ts'],
rules: {
'@typescript-eslint/triple-slash-reference': 'off',
},
},
],
settings: {
react: {
version: '17.0',
version: 'detect',
},
'import/resolver': {
node: {
paths: ['./'],
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
},
},
env: {
Expand All @@ -43,12 +87,23 @@ module.exports = {
'@typescript-eslint/explicit-module-boundary-types': 0,
'@typescript-eslint/ban-types': 0,
'react-hooks/rules-of-hooks': 2,
'react-hooks/exhaustive-deps': 2,
'react-hooks/exhaustive-deps': 1,
'react/prop-types': 0,
'react/react-in-jsx-scope': 0,
'prettier/prettier': 'error',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
// Prettier 2.x cannot parse modern TS (`import type`, inline `type` imports).
// web uses `vp fmt` (Oxfmt); keep formatting out of ESLint to avoid false IDE errors.
'prettier/prettier': 0,
'simple-import-sort/imports': 'off',
'simple-import-sort/exports': 'off',
},
ignorePatterns: ['dist/', 'node_modules', 'scripts'],
ignorePatterns: [
'dist/',
'node_modules',
'scripts',
'examples',
'**/.next',
'toolkit/dist',
'server/dist',
'web/src/routeTree.gen.ts',
],
};
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ contact_links:
url: https://github.com/fecommunity/reactpress/issues
about: Search open issues before filing a duplicate (CMS, API, CLI, admin, toolkit)
- name: Proposed roadmap issues
url: https://github.com/fecommunity/reactpress/blob/master/docs/proposed-reactpress-upstream-issues.md
url: https://github.com/fecommunity/reactpress/issues?q=label%3A%22help+wanted%22
about: Curated core and community issues you can pick up
- name: Contributing guide
url: https://github.com/fecommunity/reactpress/blob/master/CONTRIBUTING.md
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ Other approaches you rejected and why.
**Additional context**

- **Area:** Plugin / Theme / Desktop / Docs / Integration / Other
- **Related epic:** <!-- e.g. links to an existing issue or docs/proposed-reactpress-upstream-issues.md #3 -->
- **Related epic:** <!-- e.g. links to an existing issue -->
- Screenshots, sketches, or links — optional
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/help_wanted.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ labels: help wanted
assignees: ''
---

<!-- Pick from docs/proposed-reactpress-upstream-issues.md (#5–#9) or describe your own scoped task. -->
<!-- Link to an existing help-wanted issue or describe a scoped task. -->

**What do you want to work on?**

Expand Down
111 changes: 111 additions & 0 deletions .github/workflows/build-desktop-reusable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Reusable desktop installer build (macOS / Windows / Linux).
#
# Callers:
# - deploy-ecs.yml — parallel with server deploy; artifacts kept in Actions
# - release-desktop.yml — attach installers to GitHub Release
name: Build Desktop (reusable)

on:
workflow_call:
inputs:
attach-to-github-release:
description: Upload installers to the GitHub Release for this workflow run
type: boolean
default: false
artifact-retention-days:
description: Days to keep workflow artifacts when not attaching to a Release
type: number
default: 30

permissions:
contents: write

jobs:
build:
name: Build (${{ matrix.platform }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
platform: macos
- os: windows-latest
platform: windows
- os: ubuntu-latest
platform: linux

steps:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4

- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm

- name: Install Linux build dependencies
if: matrix.platform == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev libnotify-dev libnss3 libxss1 libxtst6 \
libatspi2.0-0 libdrm2 libgbm1 libasound2t64

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build desktop installer
env:
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
run: node ./desktop/scripts/build-desktop.mjs --force

- name: Collect release artifacts
shell: bash
run: |
mkdir -p desktop/release/upload
shopt -s nullglob
for pattern in \
"desktop/release/*.dmg" \
"desktop/release/*.zip" \
"desktop/release/*.exe" \
"desktop/release/*.AppImage" \
"desktop/release/*.deb" \
"desktop/release/*.rpm"
do
for file in $pattern; do
cp "$file" desktop/release/upload/
done
done
ls -la desktop/release/upload/

- name: Upload platform artifacts
uses: actions/upload-artifact@v4
with:
name: reactpress-desktop-${{ matrix.platform }}
path: desktop/release/upload/*
if-no-files-found: error
retention-days: ${{ inputs.attach-to-github-release && 7 || inputs.artifact-retention-days }}

attach-release:
name: Attach to GitHub Release
if: inputs.attach-to-github-release
needs: build
runs-on: ubuntu-latest
steps:
- name: Download all platform artifacts
uses: actions/download-artifact@v4
with:
path: release-assets
merge-multiple: true

- name: List release assets
run: ls -la release-assets/

- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: release-assets/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18 changes: 7 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,10 @@ jobs:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
Expand All @@ -28,6 +26,9 @@ jobs:
run: pnpm run build:docs
env:
DOCS_SITE_URL: ${{ vars.DOCS_SITE_URL || 'https://docs.gaoredu.com' }}
DOCS_ALGOLIA_APP_ID: ${{ vars.DOCS_ALGOLIA_APP_ID }}
DOCS_ALGOLIA_API_KEY: ${{ vars.DOCS_ALGOLIA_API_KEY }}
DOCS_ALGOLIA_INDEX_NAME: ${{ vars.DOCS_ALGOLIA_INDEX_NAME }}

build-and-smoke:
runs-on: ubuntu-latest
Expand All @@ -50,22 +51,17 @@ jobs:
- uses: actions/checkout@v4

- uses: pnpm/action-setup@v4
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build toolkit
run: pnpm run build:toolkit

- name: Build server
run: pnpm run build:server
- name: Production build
run: pnpm run build

- name: Create test .env
run: |
Expand Down
Loading
Loading