Skip to main content

Deploy Your Site

With Node.js 20+ on your server, the default stack uses embedded SQLite — no Docker required:

npm i -g @fecommunity/reactpress
mkdir /path/to/your-site && cd /path/to/your-site
reactpress init

init generates config and starts API + Admin + visitor theme. Stop services with:

reactpress stop

Diagnostics: reactpress doctor · reactpress logs.

ServiceDefault URL
Sitehttp://localhost:3001
Adminhttp://localhost:3001/admin/
APIhttp://localhost:3002/api

Before production, change the default admin / admin credentials and set CLIENT_SITE_URL / SERVER_SITE_URL to your public domains (see Project configuration).

Backup (SQLite)

cp .reactpress/reactpress.db /backup/reactpress-$(date +%F).db

For MySQL / Docker, see Docker deployment. Monorepo checkouts can use pnpm docker / db scripts (full CLI is monorepo-only).

Upgrade from 3.x: 3.x → 4.0 migration guide.


Monorepo self-hosted deployment

When you need the full lifecycle (pm2, split processes, official plugin builds), deploy from source:

Environment

git clone --depth=1 https://github.com/fecommunity/reactpress.git
cd reactpress
npm i -g pnpm
pnpm install
pnpm run build:plugins # if using official plugins

Confirm .reactpress/config.json and .env before production.

Build and start

pnpm run build
pnpm run pm2
pm2 save
pm2 startup # optional: boot on startup

Or use the one-click script at repo root:

sh scripts/deploy.sh

Code updates

git pull
pnpm install
pnpm run build:plugins
pnpm run build
pm2 restart all

Advanced: independent packages

4.0 global CLI ships a bundled API + theme-embedded Admin (reactpress init). Split-process deployment is mainly for Monorepo contributors:

ScenarioNotes
Full stack (end users)reactpress init
API-only / split processesMonorepo: pnpm dev:api, etc. — see Monorepo development
Desktop apppnpm build:desktop (local SQLite, not server deployment)

@fecommunity/reactpress-server is deprecated — do not use it for new projects.

See ReactPress 4.0 Extend, CLI reference, and Docker deployment.