Skip to content

Node.js & Python apps

Besides classic PHP websites, the panel can run Node.js and Python applications — for example Next.js, Express, Nuxt, FastAPI, Flask or Django. The panel runs your app as its own service and automatically routes your domain to it.

Requirement

This feature must be enabled in your package (Node.js/Python). If it's missing, contact your provider.


How it works

When you create a website as a Node.js or Python app:

  • Your app runs as its own background service under your website user (isolated from other websites) and restarts automatically if it crashes.
  • The app listens internally on a port you choose (e.g. 3000).
  • The web server automatically forwards requests for your domain to that port (reverse proxy). Visitors simply open https://your-domain.com.

Create an app website

  1. Click Create website.
  2. Under App type, choose Node.js, Python or Static instead of PHP.
  3. For Node.js/Python, also fill in:

    Field Meaning Example
    Runtime version Node/Python version (pick from installed ones) Node 22
    Start command How your app is launched npm run start · gunicorn app:app --bind 127.0.0.1:$PORT
    Port Internal port your app listens on 3000
    Environment variables Optional KEY=VALUE lines DATABASE_URL=…

    The port is also provided to your app as the PORT environment variable — frameworks like Next.js use it automatically.

  4. Create the website.

Runtime versions

You pick from the installed Node/Python versions. Only your provider (administrator) can install a new version.


Upload your code

Upload your app code into the website's directory (document root) — via the File Manager, FTP/SFTP or Git (SSH). The app starts from there.


Manage the app

On a Node.js/Python website you'll find the ⚡ Manage app action. There you can:

  • Install dependencies — runs npm install (for Python pip install -r requirements.txt). For Node.js it also runs npm run build when your project has a build script (e.g. Next.js, Nuxt, Vite).
  • Start / Stop / Restart and view the status.
  • View logs (your app's output).
  • Change the start command, port, environment variables and runtime version.

Example: Next.js

  1. Create a website with App type Node.js, choose the Node runtime.
  2. Click Next.js preset — sets the start command to npm run start.
  3. Set a port (e.g. 3000) and save.
  4. Upload your Next.js code into the website directory (including package.json).
  5. ⚡ Manage app → Install dependencies — this runs npm install and npm run build.
  6. Start.

Your domain now serves the Next.js app.

Static sites

For purely static websites (prebuilt HTML/CSS/JS with no running process), choose app type Static — the web server then serves the files directly, with no app service.


For administrators

As an administrator you configure the app feature in two places:

  1. Enable per package — under Admin → Packages → [Edit package] → Permissions, turn on Node.js/Python. Only customers on that package see the app area.
  2. Provide runtime versions — under Admin → System each server has a "Runtime versions (Node.js / Python)" card:

    • See all installed Node/Python versions at a glance.
    • Install: type a version (e.g. 22 or 3.12) → Install (Node downloads the official binary, Python installs the distro package).
    • Remove: via the version tag. A version still used by a website cannot be removed — switch that site's runtime first.

    With multiple servers you manage versions per server (select the server at the top).

Admins and resellers can also use the ⚡ Manage app action on any Node/Python website — starting/stopping customer apps, viewing logs and configuring them.