Domain India's cPanel and DirectAdmin shared hosting can run small Node.js and Python web applications from the control panel. The same CloudLinux tool handles both: you choose a version, point it at your code, install your dependencies and start the app, and Phusion Passenger connects it to your domain.
This page compares the two. For every step and field, see How to deploy a Node.js app on shared hosting and How to deploy a Python app on shared hosting.
In cPanel, use Setup Node.js App or Setup Python App: create the app, upload your code, install dependencies with Run NPM Install or Run Pip Install, then restart. Node.js apps listen on process.env.PORT; Python apps expose application in passenger_wsgi.py. DirectAdmin has the same tools; for Webuzo, ask support.
1. Node.js and Python side by side
Measured on our servers on 23 September 2026:
| What | Node.js | Python |
|---|---|---|
| cPanel tool | Setup Node.js App | Setup Python App |
| cPanel versions | 20, 22 and 24 | 3.9, 3.11 and 3.12 |
| DirectAdmin versions | 14, 16, 18, 19, 20, 22 and 24 | 2.7 and 3.8 to 3.13 |
| Entry point | A startup file such as app.js | passenger_wsgi.py exposing application |
| Install dependencies | Run NPM Install (package.json) | Run Pip Install (requirements.txt) |
| Webuzo | Ask support | Ask support |
Choose the newest version your code supports: Node.js 20 and older, and Python 3.9 and older, no longer get security fixes.
2. Create the app in cPanel
- Open the tool.In cPanel's Software section, open Setup Node.js App or Setup Python App and click Create Application.
- Fill in the form.Choose the version, set the Application root to a folder outside
public_html(such asmyapp), choose the Application URL, and enter the startup file (and, for Python, the entry pointapplication). - Upload your codeto the application root with File Manager or FTP. Leave out
node_modulesor any localvenvfolder. - Install dependencies.Click Run NPM Install, or add
requirements.txton the app's page and click Run Pip Install. - Start or restartthe app and open its URL. Restart after every code change.
DirectAdmin has the same fields, on the Setup Node.js App and Setup Python App pages: type the page name in the Search for pages box at the top of the DirectAdmin menu, or press Ctrl+J.
3. Environment variables and ports
Add settings in the Environment variables section of the app's page, then restart. Common ones are NODE_ENV=production, DJANGO_SETTINGS_MODULE or your own API keys.
Passenger assigns the port. A Node.js app must read process.env.PORT; setting PORT=3000 or hard-coding a port breaks routing. Python apps don't listen on a port at all: Passenger loads the application object from passenger_wsgi.py.
4. Troubleshooting
- App doesn't start or shows a 503: check the startup file name and path, read the log file named on the app's page, then restart.
- Module not found: run Run NPM Install or Run Pip Install again, and check that
package.jsonorrequirements.txtis in the application root. - Static files don't load: for Node.js, serve them from your app (for example with
express.static). For Django, runcollectstaticinto a folder inside your site's document root. No Apache proxy configuration is needed. - Changes don't show: restart the app. On cPanel a cached copy of a page can be served for up to 120 minutes, so add
?t=1to the URL to check. - Resource errors (503, 508): the app hit your account's limits. See Understanding hosting resource limits.
5. SSH is optional
You don't need SSH for any of the steps above. Jailed SSH access is available on every shared hosting plan (cPanel, DirectAdmin, Webuzo). It is off by default; ask support to enable it for your account. Login is by SSH key, and the app's page shows the command that enters its environment. See Enabling and accessing jailed SSH.
6. When you've outgrown shared hosting
The App Platform suits production apps: Node.js is detected and built automatically, Python runs from your own Dockerfile, and every plan includes PostgreSQL and SSL. See Getting started with the App Platform. For root access, background workers or Uvicorn, use a VPS.
- 512 MB RAM per app
- 1 vCPU
- 5 GB NVMe SSD
- PostgreSQL Database
Can I run Node.js or Python apps on Domain India shared hosting?
Yes, on our cPanel and DirectAdmin servers. cPanel has Setup Node.js App and Setup Python App; DirectAdmin has the same CloudLinux selectors. For Webuzo, ask support.
Should I set PORT=3000 in my app's environment variables?
No. Passenger assigns the port. A Node.js app should read process.env.PORT, and a Python app exposes a WSGI application object instead of opening a port.
How do I install npm or pip packages?
List them in package.json or requirements.txt in the application root, then click Run NPM Install or Run Pip Install on the app's page and restart the app.
Do I need SSH?
No. Everything can be done from the control panel. Jailed SSH is available on request; it is off by default and uses key login.
Which Domain India product is best for a production app?
The App Platform, which builds Node.js apps automatically, runs other languages from a Dockerfile, and includes PostgreSQL and SSL. For root access, choose a VPS.
Ready to deploy? Start with the Node.js guide or the Python guide, compare App Platform plans, or ask us in a support ticket.
Deploy from GitHub or with a deploy token, with PostgreSQL and SSL included in every plan.
See App Platform plans