Published on Jun 23 2026 in

This plugin provides a convenient DirectAdmin interface for creating, configuring, rebuilding, and running Node.js applications with Phusion Passenger.

Features

See screenshots below.

Prerequisites

Before using the plugin, you should have Phusion Passenger installed and configured for your web server.

If you already installed and configured the Python plugin on the same server, Passenger should already be available because both plugins ship the same Passenger installer.

The plugin expects Node.js versions to be available under:

/opt/nvm/versions/node

Below is a quick guide to launching your first Node.js application with the plugin.

Installation has been tested on RHEL 8 and RHEL 9 derivatives, including AlmaLinux and Rocky Linux.

Installation

You will receive the plugin download URL in your activation email.

  1. In DirectAdmin, go to: Extra Features -> Plugin Manager

  2. Install the plugin.

  3. Log in as admin and open the plugin. Initially, the Config tab shows configuration and license checks. If NVM has not been installed yet, the Node.js versions table will be empty.

Installing Passenger

The plugin includes a Passenger installer:

/usr/local/directadmin/plugins/nodejs/bin/install_passenger.sh

Use this script only when Passenger is not installed yet, or when Passenger from another vendor, such as CloudLinux, has been removed and you need to install the plugin-provided Passenger build.

The installer downloads and builds Passenger, applies the patch files included in the plugin’s bin directory, writes the Apache Passenger configuration, restarts Apache, and adds DirectAdmin template hooks for Passenger support.

If Passenger is already working on the server, you normally do not need to run this script.

If installation fails, run it in debug mode:

DEBUG=1 /usr/local/directadmin/plugins/nodejs/bin/install_passenger.sh

Installing Node.js Versions with NVM

The plugin includes a helper script:

/usr/local/directadmin/plugins/nodejs/bin/install_nvm.sh

The script installs NVM system-wide in /opt/nvm and installs the default Node.js major versions configured inside the script.

To choose which Node.js versions to install:

nano /usr/local/directadmin/plugins/nodejs/bin/install_nvm.sh

Adjust the VERSIONS value as needed. The default script installs Node.js 10, 18, 20, 22, and 24.

Then run:

/usr/local/directadmin/plugins/nodejs/bin/install_nvm.sh

Installation may take several minutes.

Refresh the Config tab in the plugin. Installed Node.js versions should now appear with their node and npm binary paths.

Creating Your First Node.js Application

Create a new application from the plugin interface.

Typically, you configure:

Node Environment Ready

After creation, the plugin prepares:

The generated environment includes wrapper scripts for node, npm, and npx. These wrappers load NODE_ENV and custom environment variables from ~/.cl.selector/node-selector.json.

Managing and Rebuilding Applications

The application list shows the app URL, root directory, mode, environment vendor, status, Node.js version, and action buttons.

You can edit the properties as on the below screenshot.

Use the actions to start, stop, restart, edit, delete, or rebuild the application environment. Rebuilding recreates the Node.js environment and runs npm ci when a package-lock.json exists, otherwise it runs npm install.

Example Commands

Use the Examples tab to generate installation commands for a created application.

The plugin currently includes examples for:

Choose the example application and the Node.js app you created. The plugin generates commands customized for that app’s path, Node.js environment, and URL.

Starting the Application

Start the app from the plugin’s Start control.

You can also restart an already running Passenger app by touching the restart file:

touch tmp/restart.txt

The plugin’s Start/Stop controls add or remove Passenger directives in .htaccess. Passenger processes may remain active for a short time after use and shut down automatically after inactivity.

Accessing the Application

Visit your application’s URL.

For the default starter app, you should see a Node.js readiness page showing the Node.js version, NODE_ENV, working directory, last restart time, and any custom variables configured in the plugin.

Command Line Access

Each application’s edit screen shows the command needed to enter its Node.js environment:

source /home/USER/nodevenv/APP_ROOT/VERSION/bin/activate && cd /home/USER/APP_ROOT

Use this shell when you want to run npm, npx, build commands, or framework-specific setup commands manually.

Logs

Global Passenger log:

/var/log/passenger.log

Per-application logs are written to the Passenger log file configured in the application settings.

Notes

Language Translations

To add your own language:

  1. Copy an existing language directory from:
/usr/local/directadmin/plugins/nodejs/lang
  1. Rename it to your language code.

  2. Translate strings inside:

messages.po
  1. For translating the menu, follow instructions in the enhanced_skin_HOWTO file inside the lang directory.

Feedback

Feature suggestions and feedback are welcome in the comments section or via the contact form available on the plugin’s Config page.