CloudLinux's Node.js and Python selectors let cPanel users deploy apps through Setup Node.js App and Setup Python App. As root you install the runtime versions, enable the selectors and decide which versions users can choose.
On MdmHost hosting plans this is managed for you. This guide is for administrators of their own cPanel server with root access.
Before you start
- CloudLinux with CageFS enabled (see managing CageFS).
- Root SSH access and WHM.
- Apps run through Passenger, which works with LiteSpeed and Apache on cPanel.
Install runtimes
Install the Node.js versions you want to offer, for example:
dnf -y install alt-nodejs20 alt-nodejs22Install Python versions and the selector tooling:
dnf -y install alt-python311 alt-python312 lvemanager alt-python-virtualenvPackage names follow the pattern alt-nodejsNN and alt-pythonNN; check dnf list 'alt-nodejs*' for what is available. Then update CageFS:
cagefsctl --force-updateEnable the selectors
- Go to WHM → Plugins → CloudLinux Manager → Node.js Selector (or Selectors).
- Turn the selector on, choose the versions users may select and set a default version (an LTS release).
- Repeat in Python Selector.
- Save.
Users now see Setup Node.js App and Setup Python App in cPanel, unless hidden by feature lists (see Feature Manager).
Limits and safety
- Apps run inside the user's LVE, so CPU and memory limits apply. Tight PMEM limits make
npm installandpip installfail; raise limits on packages meant for apps (see CloudLinux Manager settings). - Passenger starts apps on demand and stops idle ones, so many apps can share a server.
- Hide the selectors in feature lists for plans that should not run apps.
Tip: Remove old Node.js and Python versions only after checking who uses them in CloudLinux Manager; apps on a removed version stop working.
Test as a user
Create a test cPanel account and follow the end-user guides: Node.js app setup and Python app setup. Confirm the app starts and the URL responds.
Troubleshooting
The menu items do not appear in cPanel
The selector is disabled, the user is not caged, or the features are missing from the feature list.
Apps return 503
Check the app's stderr.log and the web server error log; often the startup file is wrong or the user hit a resource limit (see Node.js troubleshooting).
Frequently asked questions
Do users get SSH for npm commands?
Only if you allow shell or Terminal access. The cPanel interface has Run NPM Install and Run Pip Install buttons for users without SSH.
Can I offer Ruby too?
CloudLinux also provides a Ruby selector on some versions, enabled the same way. Check CloudLinux Manager for the options on your server.
Do apps survive server reboots?
Yes. Passenger starts them again on the next request.
Which Node.js version should be the default?
The current active LTS release. Odd-numbered releases are short-lived and not suited as a default.
