Ekonomik Linux Hosting
₺249.00 / month
- 1 Adet Site Barındırma
- 2 GB Disk Alanı
- Limitsiz Trafik
- 5 Adet E-Posta
- 1 GB E-Posta Kotası
- 1 Adet MySQL Veritabanı
Deploy your Node.js app by picking an LTS version in the control panel: Linux hosting with SSH, Git and NVMe storage, and VPS or VDS when always-on workloads grow.
Quick answer
Node.js hosting is hosting where server applications written in JavaScript (Express, NestJS, Next.js, Fastify) run and stay reachable at all times. For small and medium APIs, form back ends and server-rendered sites, Linux hosting is enough: you choose the Node.js version in the panel, set the application root and startup file, and run npm install. For WebSocket-heavy projects, queue workers or memory-hungry apps, a VPS with PM2 and Nginx is the better choice.
Monthly starting prices in Turkish lira, excluding VAT. You complete the order on our Turkish store page.
₺249.00 / month
₺349.00 / month
₺549.00 / month
| Project type | Runtime memory | Suitable product | Note |
|---|---|---|---|
| Small Express / Fastify API | 150–300 MB | Linux hosting | A single process that runs on request is enough |
| Next.js / Nuxt server-side rendering | 300–700 MB | Linux hosting or VPS | Build locally or in CI |
| NestJS API + MySQL | 250–500 MB | Linux hosting or VPS | VPS for clustering as traffic grows |
| WebSocket, Socket.IO, real-time app | 500 MB–2 GB | VPS | Needs persistent connections and a long-lived process |
| Queue worker (BullMQ), Puppeteer, AI API bridge | 1–4 GB | VPS or VDS | Full root for Redis and background processes |
Estimates; actual needs depend on mods, plugins and settings.
Node.js hosting is hosting JavaScript or TypeScript server applications running on the V8 engine so they are publicly and continuously reachable. Unlike classic PHP hosting, where a script runs from scratch on each request, the application serves requests as a process living in memory. Two questions therefore decide Node.js hosting: who starts the process and keeps it alive, and how much memory does it get?
Node.js hosting is a good start for:
For these scenarios, Linux hosting plans offer Node.js version selection in the panel, SSH access and Git deployment; no server administration knowledge is needed. If your app is a bot, real-time chat or queue worker that must stay on all the time, you need a virtual server instead; the sections below draw that line concretely.
In production always choose an LTS (Long Term Support) release; as of October 2026 that is Node.js 24, and Node.js 26 enters LTS on 28 October 2026. Node.js 22 is in maintenance and reaches end of life in April 2027. Node.js 20 went out of support on 30 April 2026; apps running on it no longer receive security patches.
From version 27 onward, the Node.js project is moving to a single major release per year. In practice: start new projects on the current LTS and move existing projects from one LTS to the next once a year, as planned work.
| Version | Status (October 2026) | Recommendation |
|---|---|---|
| Node.js 26 | Active LTS from 28 October 2026 | Target version for new projects |
| Node.js 24 | LTS | Safe default for production |
| Node.js 22 | Maintenance, ends April 2027 | Plan your migration |
| Node.js 20 and earlier | Out of support | Do not use |
To pin the version in your project, add "engines": { "node": ">=24" } to package.json and commit an .nvmrc file. Your local machine, CI and hosting then run the same major version, and most “it worked on my machine” problems disappear.
On Linux hosting, a Node.js app is defined with the panel’s Node.js application tool and runs as a process managed by the web server. In cPanel-based environments the tool appears as Setup Node.js App, in Plesk Obsidian as the Node.js section; both use Phusion Passenger behind the scenes to pass requests to your app.
The fields you need to set are:
package.json; keeping it outside the public web folder (public_html) is better for securityapp.js, server.js or a compiled dist/main.jsNODE_ENV=production, database details, API keysYour app should not choose its own port; it must listen on process.env.PORT, which Passenger assigns. Dependencies are installed with the panel’s “npm install” button, or over SSH by activating the virtual environment and running npm ci --omit=dev.
In this model the process may go idle if no requests arrive for a while and restart on the next request. That is fine for websites and APIs, but not for work that must run continuously in the background (timers, bot connections). You can split such work into short scripts triggered by cron jobs, or move it to a VPS.
Any Node.js project that needs always-open connections, long-lived background processes, lots of memory or operating-system-level packages needs a VPS rather than shared hosting. Hosting resource limits (concurrent processes, memory, CPU time) exist so a multi-tenant environment stays fair, and they clash with these workloads.
Choose a VPS server straight away if any of these apply:
On a VPS you attach the app to the PM2 process manager and put Nginx in front as a reverse proxy. When traffic grows and you want to escape noisy-neighbour effects entirely, a VDS server with cores dedicated to you is the next step.
Short answer: Linux hosting for web apps and APIs that run on request, a VPS for work that needs always-on processes or system packages, and a VDS for heavy production loads that need steady, predictable performance. All three run the same code; the difference lies in management responsibility and resource guarantees.
| Criterion | Linux hosting | VPS | VDS |
|---|---|---|---|
| Server management | Managed by LIONFIN | You (full root) | You (full root) |
| Process management | Panel and Passenger | PM2 or systemd | PM2, systemd, Docker |
| Always-on workers and bots | Not suitable | Suitable | Suitable |
| Redis, PostgreSQL, MongoDB | Not available | You can install them | You can install them |
| CPU resources | Limited share per account | Virtual cores | Cores dedicated to you |
| Maintenance load | Lowest | Medium | Medium |
The price of the flexibility that comes with full root is that operating system updates, the firewall and the backup plan are yours. If you have no server administration experience, starting the project on hosting and moving when a bottleneck appears is the most efficient path for most teams. Package contents and current values are shown in the package table on this page.
The simplest automated deployment is a four-step script: pull the code from Git, install production dependencies, run database migrations if needed and restart the app. You can trigger the script manually over SSH or from a CI pipeline.
cd ~/apps/api
git pull --ff-only origin main
npm ci --omit=dev
npx prisma migrate deploy
mkdir -p tmp && touch tmp/restart.txtThe last line tells Passenger to restart the app on the next request; it has the same effect as pressing “Restart” in the panel. On a VPS, pm2 reload api performs a zero-downtime reload instead.
Good deployment habits:
test.yourdomain.com).Passwordless login with an SSH key both improves security and makes it easier for CI to connect to the server; start by adding your SSH key in the panel.
The framework decides how the app is built and which file is the entry point. Lean frameworks such as Express and Fastify run directly; Next.js, Nuxt and NestJS are built first and then started from the build output.
| Framework | Entry point | Watch out |
|---|---|---|
| Express / Fastify | app.js or server.js | Must listen on process.env.PORT |
| NestJS | dist/main.js | After npm run build, only dist and production dependencies are needed |
| Next.js | server.js produced with output: 'standalone' | Building needs memory; build in CI and upload the output |
| Nuxt | .output/server/index.mjs | ES module (ESM) output; needs a Node.js LTS |
| Static export (Next.js export, Astro static) | None | No Node.js needed; plain hosting is enough |
The point most often missed: build and runtime need different resources. A Next.js build can use a lot of memory for several minutes; rather than hitting resource limits on hosting, build on your own computer or in a CI pipeline (GitHub Actions, GitLab CI) and send only the output via Git or SFTP. If your site actually uses no server-side rendering, you can publish a static export on web hosting without Node.js at all.
On Linux hosting your Node.js app uses the MySQL or MariaDB database in the same account via localhost; if you need PostgreSQL, MongoDB or Redis, you install them yourself on a VPS. After creating the database in the panel and granting the user access, put the connection details in an environment variable rather than in code.
On the Node.js side, MariaDB works smoothly with the mysql2 driver, Prisma, Drizzle, TypeORM or Sequelize. If you use Prisma, run prisma generate during the build and prisma migrate deploy over SSH after deployment.
Two rules are enough for environment variables:
.env to .gitignore; put the values in the panel’s environment variable field or in an .env file in the application root that cannot be reached from the web.NODE_ENV=production, Express shows detailed error pages, many libraries disable caching and the app slows down noticeably.Node.js 24 and later can read an .env file without extra packages using node --env-file=.env app.js; using this flag with PM2 or systemd on a VPS makes the dotenv dependency unnecessary.
The most effective ways to speed up a Node.js app are running in production mode, serving static files from the web server rather than the app, and caching repeated queries. Node.js runs on a single-threaded event loop, so every synchronous operation that blocks the loop makes all users wait.
express.static middleware.Cache-Control lifetime.fs.readFileSync, parsing large JSON and password hashing (bcrypt) with asynchronous versions or move it to worker threads (worker_threads).mysql2 or ORM pool.-i max cluster mode runs the app with as many processes as there are cores.NVMe storage on LIONFIN Linux hosting plans speeds up reading folders made of tens of thousands of small files such as node_modules; even so, slowness usually comes from an unmeasured query, not the disk. To find it, first identify the slowest endpoint with console.time or an APM tool.
The foundation of Node.js security is keeping the dependency chain under control, protecting secrets and serving the app only over HTTPS. In the npm ecosystem a project has hundreds of indirect dependencies, and a significant share of attacks come through that chain.
package-lock.json and use npm ci instead of npm install on the server, so exactly the versions you tested get installed.npm audit output before every deployment and do not leave critical vulnerabilities waiting.helmet middleware in Express and rate limiting on login and sign-up endpoints..env and node_modules must not sit in a folder that can be downloaded from the web.For backups, your Git repository already protects the code; what really needs protecting is the database and user uploads. In addition to the hosting account’s automatic backup, export critical databases regularly with mysqldump and store them in another location. If you deploy with version tags (git tag), rolling back from a faulty release to the previous tag takes minutes.
However well a Node.js app is written, its response time is shaped by disk speed, network capacity and continuous monitoring. If your API is called on every screen of a mobile app, even a few seconds of downtime reaches users as an error screen.
The main elements of LIONFIN infrastructure that affect your Node.js apps:
On the application side, adding a health check endpoint, running minute-by-minute checks with an external monitoring tool and reading error logs regularly let you see problems before your users do.
Most Node.js hosting errors come from a wrong startup file, missing dependencies, module system mismatches or resource limits. To find the problem, first check the app log in the panel or the error log in the application folder over SSH.
node app.js to see the error.dist) was not uploaded. Run npm ci; in TypeScript projects, start the compiled file.package.json contains "type": "module", use import instead of require, or name the file with a .cjs extension.process.env.PORT.If you cannot solve it, include the application root, Node.js version and the last lines of the error log when you open a support ticket from the customer panel; it speeds up the fix.
Choose a plan
Pick a Linux hosting plan from the package table that fits your number of projects and database needs; look at VPS plans if you need an always-running process.
Connect the domain and SSL
Point your domain’s DNS records to the hosting and enable the free Let’s Encrypt certificate in the panel.
Create the application
In the panel’s Node.js application tool, set the LTS version, application root, URL and startup file.
Upload the code
Pull the code with Git or upload it via SFTP; for projects that need building, upload the build output.
Install dependencies and set the environment
Install production dependencies with npm ci and add NODE_ENV=production and database details as environment variables.
Start and test
Start the app from the panel, open the domain in a browser and check the error log.
Yes. On Linux hosting plans you can run an Express, NestJS or Next.js app by choosing a Node.js version in the panel. The app serves requests as a process managed by the web server. For work that must stay on all the time, such as bots, WebSocket servers or queue workers, you need a VPS.
Choose an LTS version for production. As of October 2026 Node.js 24 is LTS, and Node.js 26 enters LTS on 28 October 2026. Support for Node.js 20 ended in April 2026, so projects still on it need migrating. Pin the version with the engines field in package.json and an .nvmrc file.
Yes. Build with output: standalone in the Next.js configuration and set the generated server.js as the startup file. Building on your own computer or in a CI pipeline is recommended, because the build stage needs much more memory than runtime. If you use a static export, you do not need Node.js at all.
On hosting, the app process may be removed from memory if it receives no requests for a while; because it restarts when the first request arrives, that request can take a few seconds. Sites with steady traffic rarely notice this. If the app must stay warm at all times, a VPS where you run it with PM2 is a better fit.
Linux hosting plans offer MySQL and MariaDB as databases; a MongoDB server cannot be installed. Your app can connect to an external managed MongoDB service, but in terms of latency and data location the cleanest solution is running MongoDB on the same VPS. For a new project, MariaDB with an ORM is also a good option.
On shared hosting the panel and Passenger manage the process, so PM2 is not needed and usually cannot run persistently. PM2 is used on VPS and VDS servers to restart the app automatically, run it in cluster mode and start it at boot.
WebSocket and Socket.IO need a process that keeps connections open and never sleeps. Run real-time features on a VPS with an Nginx reverse proxy configuration that passes the Upgrade and Connection headers. At small scale long polling can work on hosting, but it does not scale.
No. The code and database stay the same; what changes is who manages the process. On the VPS you install Node.js LTS, pull the code with Git, start it with PM2 and set Nginx as a reverse proxy. Move the database with mysqldump and update the environment variables. Changing DNS last keeps downtime to a minimum.