Skip to main content

Running Node.js and Python apps in ISPmanager 6: setup guide

ISPmanager 6 · 29.09.2026

ISPmanager 6 does not just serve static files and PHP sites — it can also run Node.js and Python applications as separate web services with their own domain. Here is how to create such an application, pick a runtime version, and set up proxying through the web server.

How an application differs from a regular site

A regular site in ISPmanager 6 is a set of files handled by PHP-FPM or served directly by the web server. A Node.js or Python application is a separate process that listens on its own local port, while Nginx proxies external requests to it by domain. The panel starts and restarts the process on its own through a systemd unit.

Creating a Node.js application

Open "WWW domains" → "Create application", choose the Node.js type, set the domain and the path to the entry point, for example app.js in the site's root directory. ISPmanager 6 offers a list of installed Node.js versions, and a missing version can be added through the runtime version manager.

npm install --production
npm run build

Once the dependencies are installed, the panel starts the process automatically. You can check that the application is listening on the right port from the console:

ss -tlnp | grep node

Creating a Python application

For Python applications, ISPmanager 6 supports WSGI-compatible frameworks: Django, Flask, and FastAPI through uvicorn. When creating the app, set the Python version, the path to the virtual environment, and the module with the entry point, for example app:application for Flask.

python3 -m venv /var/www/httpd-cts/site_py/venv
source /var/www/httpd-cts/site_py/venv/bin/activate
pip install -r requirements.txt

The panel creates a systemd unit that runs the application through gunicorn or uvicorn inside the given virtual environment and restarts the process if it crashes.

Proxying through Nginx

ParameterDefault valueWhere to change it
Application local portAssigned automaticallyApplication settings in the panel
Proxy timeout60 secondsNginx template for applications
Maximum request size10 MBclient_max_body_size in the template

If the site uses a combined Nginx and Apache setup, the application is still proxied directly through Nginx, bypassing Apache — this is faster for APIs and WebSocket connections. Details on combining web servers are in the article about Nginx and Apache in ISPmanager 6.

Logs and restarting the application

Node.js and Python application logs are written to separate files in the site directory and also duplicated in the systemd journal. You can view recent entries and process status like this:

journalctl -u app-site_ru -n 100
systemctl restart app-site_ru

If the application keeps crashing right after startup, check the dependency import errors in the log first — this is the most common cause. The general approach to reading panel errors is covered in the article about ISPmanager 6 logs and diagnostics.

Summary: application launch checklist

  • Pick the right Node.js or Python version before creating the application
  • Set the correct path to the entry point and the virtual environment
  • Install dependencies with npm install or pip install before the first run
  • Check that the process listens on its port and is proxied through Nginx
  • Set up systemd log viewing for quick failure diagnostics
← Back to Knowledge Base Ask Support