Deploying Node.js Projects with CelerBuild Using the Express Framework Example

This guide demonstrates how to deploy a Node.js application using CelerBuild, with Express framework as an example.

Prerequisites

1. System Prerequisites

Complete all Prerequisites setup steps.

2. Node.js Environment Setup

Installing Node.js and npm

macOS
# Using Homebrew
brew install node
 
# Verify installation
node --version
npm --version
Ubuntu/Debian
# Update package list
sudo apt update
 
# Install Node.js and npm
sudo apt install nodejs npm
 
# Verify installation
node --version
npm --version
CentOS/RHEL
# Install Node.js repository
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
 
# Install Node.js and npm
sudo yum install nodejs
 
# Verify installation
node --version
npm --version

3. PM2 Setup

Installing PM2

# Install PM2 globally
sudo npm install -g pm2
 
# Verify installation
pm2 --version
 
# Setup PM2 to start on system boot
pm2 startup

Branch Deployment (Development Environment)

1. Create Server Infrastructure

Create Server Cluster

  • Navigate to Global/Server Clusters
  • Create a cluster named "example-nodejs-server-cluster(dev)"

nodejs-example-new-server-cluster

Add Server

  • Navigate to the Global/Servers section or go to the Actions menu of the newly created example-nodejs-server-cluster(dev) and select "Servers"
  • Select cluster "example-nodejs-server-cluster(dev)"
  • Fill in:
    • Server Name
    • Server IP
    • SSH Port (default: 22)

nodejs-example-add-server

2. Import Project Template

Download Template

image

Import Template

  • Navigate to Projects/Projects
  • Click "Import YAML"
  • Upload the downloaded template

image

Create Project

  • Review and confirm project settings
  • Click "Create Project" to finish

Note: This example uses Ubuntu system with ubuntu user. Please adjust the Deployment Configuration (Target Deployment Path, Target Repository Path, Deployment User, etc.) according to your actual environment.

image

image

3. Initiating Deployment

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-go-dev"
  3. Fill in Title and Description
  4. Click sync icon next to "Branch" and select latest dev branch
  5. Click "Submit Application"

image

image

For detailed steps, see Creating Deployment

4. Executing Deployment

  1. In Operations/Tasks, find your project task
  2. Click "Deploy" button
  3. On the task page, click "Start Deploy"
  4. Monitor Server Status and Operation Logs
  5. If issues occur, check error messages and retry deployment after fixing

image

image

image

For detailed steps, see Execute Deployment Task

5. Verification

Access http://server:8082/version (replace "server" with your server address)

# Example command
  ~ curl http://server:8082/version
 
# Expected response
{"version":"1.0.0"}

Note:

  • Replace "server" with your actual server IP address
  • A response similar to {"version":"1.0.0"} indicates successful deployment
  • If you cannot access the endpoint, check:
    • Server firewall settings
    • Port 8082 accessibility
    • Application running status

Tag Deployment

1. Create Server Infrastructure

Create Server Cluster

  • Navigate to Global/Server Clusters
  • Create a cluster named "example-nodejs-server-cluster(prod)"

image

Add Server

  • Navigate to the Global/Servers section or go to the Actions menu of the newly created example-nodejs-server-cluster(prod) and select "Servers"

  • Select cluster "example-nodejs-server-cluster(prod)"

  • Fill in:

    • Server Name
    • Server IP
    • SSH Port (default: 22)

image

2. Import Project Template

Download Template

image

Import Template

  • Navigate to Projects/Projects
  • Click "Import YAML"
  • Upload the downloaded template

image

Create Project

  • Review and confirm project settings
  • Click "Create Project" to finish

image

image

3. Initiating Deployment

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-nodejs-prod" and Click "Apply Deploy"
  3. Fill in Title and Description
  4. Click sync icon next to "Tag" and select latest tag
  5. Click "Submit Application"

image

image

For detailed steps, see Creating Deployment

4. Executing Deployment

Follow the same steps as branch deployment execution.

image

image

5. Verification

Access http://server:8082/version (replace "server" with your server address)

# Example command
  ~ curl http://server:8082/version
 
# Expected response
{"version":"1.0.0"}

Note:

  • Replace "server" with your actual server IP address
  • A response similar to {"version":"1.0.0"} indicates successful deployment
  • If you cannot access the endpoint, check:
    • Server firewall settings
    • Port 8082 accessibility
    • Application running status

Rollback Operations

Note: Branch deployment rollback is not demonstrated here because the system only maintains the latest committed version. We'll demonstrate rollback using tag deployments instead.

Tag Deployment Rollback Example

1. Initial Deployment (v1.0.0)

For detailed deployment steps, refer to:

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-nodejs-prod"
  3. Fill in deployment information:
    • Title: "Deploy v1.0.0"
    • Description: "Initial deployment of v1.0.0"
  4. Click sync icon next to "Tag" and select "v1.0.0"
  5. Click "Submit Application"
  6. Execute deployment and verify:
curl http://server:8082/version
{"version":"1.0.0"}

2. Upgrade to v1.0.1

For detailed deployment steps, refer to:

  1. Go to Operations/Applications
  2. Create new deployment
  3. Fill in deployment information:
    • Title: "Upgrade to v1.0.1"
    • Description: "Upgrading from v1.0.0 to v1.0.1"
  4. Select tag "v1.0.1"
  5. Submit and execute deployment
  6. Verify upgrade:
curl http://server:8082/version
{"version":"1.0.1"}

3. Rollback to v1.0.0

  1. In Operations/Applications, find your project
  2. Click Actions (three dots) and select "Apply Rollback"
  3. Fill in rollback information:
    • Title: "Rollback to v1.0.0"
    • Description: "Rolling back from v1.0.1 to v1.0.0"
  4. Click sync icon next to "Select Rollback Tag"
  5. Select "v1.0.0" from the available tags
  6. Click "Submit Rollback"

image

image

4. Execute Rollback

  1. Go to Operations/Tasks
  2. Find your rollback task
  3. Click "Rollback" in Actions
  4. Click "Start Rollback" on the task page
  5. Monitor Server Status and Operation Logs
  6. Verify rollback success:
curl http://server:8082/version
{"version":"1.0.0"}

image

image

For detailed rollback instructions, see:

Congratulations! You have successfully learned how to deploy Express Framework using CelerBuild Standard Edition, including branch deployment, tag deployment, and tag version rollback operations! 🎉