Can I host a Node.js or Python app on Webway?

Short answer

Yes. Webway shared hosting can run Node.js and Python web apps through an app manager built into your control panel. It suits websites and APIs built with Express, Flask, Django and similar frameworks.

It does not suit everything. Read the What doesn't work section before you build.

Which hosting supports it

Apps run through the CloudLinux app manager, which uses Phusion Passenger. Passenger needs the Apache web server or LiteSpeed Enterprise. It does not work with OpenLiteSpeed.

Your hosting Node.js and Python apps
cPanel hosting Supported on all servers
DirectAdmin hosting Supported on a few servers only. Most DirectAdmin servers run OpenLiteSpeed, where apps won't start (the site shows a 404 page)
Servers without CloudLinux (very few) Not available. The app manager is not installed

You can't see which web server your account is on. If you are on DirectAdmin, open a support ticket before you start building. We will confirm whether your server supports apps, or move your account to one that does.

Not sure which panel you have? See Which control panel do I have: cPanel or DirectAdmin?

Versions available

Versions Recommended
Node.js 12, 14, 16, 18, 19, 20, 22 20 or 22
Python 2.7, 3.7, 3.8, 3.9, 3.11 3.11

Older versions are there for existing apps. Start new projects on a recommended version.

How your app runs

Understanding this saves a lot of frustration.

  • Your app starts when a visitor requests it. The first request after a quiet period is slow because the app is starting. This is normal.
  • Your app may be stopped when idle. Passenger frees the memory when nobody has visited for a while. It starts again on the next request. Don't rely on anything staying in memory between visits.
  • Passenger chooses the port. Your app must listen on the port in the PORT environment variable, not a fixed number.
  • Code changes need a restart. Click Restart on the app screen after every upload.
  • Your code lives outside public_html. The app manager connects your domain to the app folder for you.

What works

  • Websites and APIs: Express, Koa, Fastify, Flask, Django.
  • Server-rendered frameworks such as Next.js or Nuxt, if you build them on your own computer and upload the output. See Limits below.
  • npm and pip packages installed into your app's own environment.
  • Environment variables, set on the app screen.
  • Scheduled tasks, using cron jobs that call your app or run a script.
  • MySQL databases created in your control panel.

ASGI-only Python apps (for example FastAPI served by Uvicorn) aren't supported, because Passenger expects a WSGI app. Use Flask or Django, or a VPS for ASGI apps.

What doesn't work

Not supported Why Use instead
WebSockets The connection is accepted but no messages pass through. Tested and confirmed Polling. Socket.IO may work if set to its polling transport only. Not guaranteed
Always-running processes: Discord or Telegram bots, queue workers, background loops, anything that must run 24/7 Apps start on request and are stopped when idle A VPS. For scheduled jobs, use cron
Custom ports or listening on a fixed port Passenger assigns the port Listen on process.env.PORT / the PORT variable
Static React, Vue or Angular sites through the app manager Not needed. They are plain files Run the build locally and upload the output to public_html like any website
Servers, daemons or services that don't speak HTTP Passenger only proxies web requests A VPS

Limits

Each hosting account has resource limits. These are the defaults:

Limit Default What it means for your app
Memory 2 GB Shared by everything on your account, including PHP and the build steps you run over SSH
Entry processes 30 Simultaneous requests being handled. More than this and visitors see an error
Processes 90 Total running processes on the account

Heavy build steps such as next build or large npm install runs can hit the memory limit and fail part-way. Build on your own computer and upload the finished output, then run only the install step on the server.

When you need a VPS instead

Choose a VPS or cloud server if you need any of these:

  • WebSockets or real-time features
  • A process that runs all the time
  • Root access, custom system packages, Docker, or a specific runtime not listed above
  • More memory or CPU than the limits above
  • A database other than MySQL, such as PostgreSQL or MongoDB

See Webway's VPS hosting at webway.host/vps-hosting.

Next steps

  • How to set up a Node.js app
  • How to set up a Python app (Flask or Django)
  • How to install npm packages for my Node.js app
  • My Node.js or Python app won't start or shows an error

Did this answer it?