Domain Topology
Before deploying, decide how you want to serve your admin panel and public site. NodeForgeCMS supports two topologies:Separate Domains
Host the admin panel and public site on independent subdomains:| Service | URL |
|---|---|
| Public site | https://yourdomain.com |
| Admin panel | https://admin.yourdomain.com |
Shared Domain
Serve both the admin panel and the public site from the same domain using path-based routing:| Service | URL |
|---|---|
| Public site | https://yourdomain.com |
| Admin panel | https://yourdomain.com/admin |
Deployment Methods
NodeForgeCMS supports three deployment methods. Choose based on your infrastructure and operational preferences.Environment Setup
Configure database credentials, JWT secrets, Redis connection, and email settings before deploying with any method. Start here if it’s your first deployment.
PM2 + Nginx
Run the Node.js server with PM2 as your process manager and Nginx as a reverse proxy. The recommended approach for VPS and bare-metal servers — battle-tested, lightweight, and easy to operate.
Docker Compose
Spin up NodeForgeCMS along with MySQL and Redis in isolated containers using the included
docker-compose.yml. Ideal for containerized environments and teams that want reproducible deployments.Deployment Checklist
Before going live, make sure you’ve completed the following steps regardless of which deployment method you choose:- Copy
server/.env.exampletoserver/.envand fill in all required values - Set a strong, random
JWT_SECRET(at least 32 characters) - Point
SERVER_HOSTandIMG_HOSTto your production domain - Import the initial database SQL file into your MySQL instance
- Build the admin panel for your chosen topology (
pnpm build:prodorpnpm build:sigle) - Configure Nginx (or your reverse proxy of choice) with the appropriate server blocks
- Enable HTTPS with a valid TLS certificate (Let’s Encrypt / certbot recommended)