Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk11 min

How to Install n8n with Node.js and npm on a VPS (2026 Guide)

A complete guide to installing n8n with npm on a VPS, keeping it online with systemd, securing it behind HTTPS, protecting credentials and planning the move to Docker as n8n 3.0 approaches.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can install n8n on a Linux VPS with npm by running npm install n8n -g, then starting it with n8n or n8n start. The supported Node.js range in the current npm guide is 20.19 through 24.x, inclusive.

There is an important lifecycle warning: n8n documentation says npm-based installs are deprecated from n8n 3.0, scheduled for October 2026. Docker is the documented direction for new deployments. The procedure below is therefore most appropriate for an existing npm installation, a temporary deployment, or a situation where npm is required. Check the current n8n release notes immediately before installing a new production instance.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What you need before installing n8n

Installing the package is only one part of running n8n on a VPS. You also need to operate the server, network, domain, encryption material, backups and upgrade process.

  • A Linux VPS with SSH access and enough storage for your workflows, execution data and logs. Official guidance does not define one universal CPU, memory or disk size; the correct capacity depends on workload and retention.
  • A non-root administrative account with permission to use sudo. Run the application itself as a dedicated non-root user.
  • A supported Node.js release: 20.19 through 24.x, inclusive.
  • npm, which is installed with the normal Node.js distribution.
  • A domain name if the instance will be used remotely or by webhook integrations.
  • A plan for a reverse proxy or equivalent front end that terminates HTTPS.
  • A backup plan covering n8n data, credentials and the encryption material needed to decrypt them.

Do not expose a freshly started n8n process directly to the public internet before you have configured authentication, firewall rules and encrypted transport.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

npm or Docker: which installation path fits a VPS?

For a new deployment, Docker is increasingly the preferred path in n8n’s documentation because npm installs are being deprecated from n8n 3.0. npm remains useful when you already operate an npm installation, need a quick test environment, or cannot use containers.

Decision point npm installation Docker-based installation
Lifecycle Deprecated from n8n 3.0 according to the npm guide; existing installations are expected to continue working temporarily. Documented direction for new n8n 3.0 installations.
Runtime dependency You maintain a supported Node.js release and npm on the VPS. The container packages the application runtime; you still maintain the host and container image updates.
Upgrade process Stop the service, install the desired n8n version with npm, test it, then restart. Pull the intended image, recreate the container and verify persistent data and configuration.
Isolation The n8n process and npm packages share the host operating system. The application runs inside a container boundary, while storage and networking remain your responsibility.
TLS and proxying Use the same reverse-proxy or load-balancer pattern as any self-hosted deployment. Use a reverse proxy or load balancer in front of the container.
Backups Back up the n8n data directory, credentials and encryption key or secret. Back up the persistent volume or bind mount and the same application secrets.
Best fit Existing npm deployments, development and temporary installations. Most fresh production deployments as n8n 3.0 approaches.

If you are starting from zero for a new production server, compare the current Docker instructions with this npm procedure before provisioning the VPS. If you must use npm, keep the installation easy to replace later.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step 1: provision the VPS and connect securely

Create an administrative account

Use your provider’s console or initial root login to create a normal account with administrative privileges. Disable routine work as root, use SSH keys rather than password authentication where possible, and keep the operating system updated before installing application software.

ssh ACCOUNT@SERVER_IP

Replace ACCOUNT and SERVER_IP with the account and address supplied by your host. The exact commands for creating users and enabling sudo differ by Linux distribution, so follow that distribution’s administration procedure.

Apply basic network controls

Allow SSH, HTTP and HTTPS as required by your design. Do not leave the n8n application port open to every source when a reverse proxy can reach it locally. Firewall syntax differs between distributions and hosting providers; make the policy explicit and test it from a second terminal before closing your current session.

Step 2: install and verify a supported Node.js release

n8n’s current npm guide requires Node.js 20.19 through 24.x, inclusive. A VPS image may ship an older release, and a distribution repository may offer a newer major release than n8n supports. Use the Node.js installation method appropriate for your operating system, then verify the result before installing n8n.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
  • Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized
node --version
npm --version

The first command must report a version in the 20.19–24.x supported range. If it reports an older major version, install a supported release and open a new shell so the updated binary is on your PATH. If multiple Node.js installations exist, check which executable is being used:

command -v node
command -v npm

Do not continue merely because npm responds: an unsupported Node.js runtime can produce installation errors or an application that fails after an upgrade. Record the working Node.js and npm paths; you may need them in a service definition later.

Step 3: install n8n globally with npm

Once Node.js is verified, install the n8n package globally:

npm install n8n -g

A global install places the n8n command on the npm global binary path. Confirm that the shell can find it:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
command -v n8n
n8n --version

If the command is not found, inspect npm’s global prefix and add its binary directory to the service user’s PATH. Do not work around a missing path by installing a second copy under a different account; that makes upgrades and troubleshooting harder.

Install the package as the same non-root account that will run the service, or ensure that the account running n8n can read the executable and write its data directory. Avoid running n8n as root.

Rank #3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
  • CanaKit Raspberry Pi 5 Essentials Starter Kit

Step 4: start n8n and perform the first check

Start the process interactively first. This lets you see startup messages and errors before introducing systemd or a reverse proxy.

n8n

The equivalent explicit command is:

n8n start

Keep the terminal open while testing. Confirm that the process remains running, note the listening address and port shown in its output, and check that no Node.js compatibility or permission error appears. n8n commonly uses port 5678 when no alternative is configured; treat the startup output and your version’s configuration as authoritative.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

At this stage, bind access to the VPS itself while you configure the front end. Do not publish the process directly without TLS and access controls. Complete the initial owner account and authentication setup through the n8n interface before connecting sensitive credentials or production webhooks.

Step 5: keep n8n running after SSH disconnects

An interactive n8n command ends when the SSH session ends. For a VPS, use a service manager so n8n starts on boot, restarts after an unexpected process failure and records logs in a predictable place. systemd is available on most current Linux VPS images.

Create a dedicated service account and data location

Use a dedicated non-root account, such as an account created for this application, and make sure it owns the n8n data directory. The exact home directory and user-management commands depend on your distribution. Keep the account’s home and application data on persistent storage included in your backup plan.

Find the absolute n8n executable path

command -v n8n

Copy the resulting absolute path. A systemd service may have a smaller PATH than your interactive shell, so using the absolute path avoids a common “executable not found” failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
SANOOV Raspberry Pi 5 4GB Kit, 4GB RAM Single Board Computer with Active Cooler and ABS Case, Complete Raspberry Pi 5 Starter Kit for IoT Robotics Retro Gaming
  • All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
  • Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
  • Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
  • Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
  • Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online

Create the service unit

Create a unit such as /etc/systemd/system/n8n.service and adapt the account, home directory and executable path:

[Unit]
Description=n8n automation service
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=ACCOUNT
WorkingDirectory=/home/ACCOUNT
ExecStart=/ABSOLUTE/PATH/TO/n8n start
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Replace the three template values inside the code block with the service account, its real home directory and the path returned by command -v n8n. If your Node.js installation uses a user-specific version manager, make sure the service can access that installation; otherwise install Node.js in a system-wide location intended for services.

Enable, start and inspect the service

sudo systemctl daemon-reload
sudo systemctl enable --now n8n
sudo systemctl status n8n
sudo journalctl -u n8n -f

enable --now starts n8n immediately and enables it at boot. The status command shows whether systemd considers it healthy; the journal command follows live output. Stop the interactive copy before starting the service, or two n8n processes may compete for the same port and data.

If systemd reports a failure, check the executable path, the service user’s permissions, the Node.js path and the working directory. Run the same command as the service account in a shell to reproduce permission and environment problems.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step 6: configure a domain, firewall and HTTPS reverse proxy

Point DNS at the VPS

Create the required DNS record for your chosen hostname and wait for it to resolve to the VPS address. Use a hostname dedicated to the n8n interface, such as an automation subdomain, rather than exposing the server by a raw IP address.

Proxy traffic to the local n8n process

n8n’s security guidance requires self-hosters to encrypt data in transit by placing a reverse proxy in front of the instance to handle TLS. Traefik and a network load balancer are examples named in the official SSL guidance; Nginx and Caddy can perform the same reverse-proxy role when configured correctly.

Best Value
RasTech Raspberry Pi 5 8GB Kit with Active Cooler and Pi5 Case
  • 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
  • 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
  • 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
  • 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
  • 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.

The proxy should accept HTTPS from the internet and forward requests to the local n8n listener. A minimal Nginx-style location illustrates the required shape:

location / {
    proxy_pass http://127.0.0.1:5678;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

Use the syntax and certificate automation procedure documented by your selected proxy. The upstream address and port must match the address n8n is actually listening on. If you change the n8n port, update the proxy and firewall policy together.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the application port private

Where possible, bind n8n to localhost and allow only the reverse proxy to reach it. Permit public access to the proxy’s HTTPS port, not to the backend port. If your hosting environment requires a load balancer, restrict the backend security group to the load balancer’s network.

Set the external URL consistently

The public hostname, protocol and webhook URL must agree with the reverse-proxy configuration. Configure the n8n host and URL settings using the environment-variable names supported by your installed n8n version, then restart the service. A mismatch can produce incorrect callback addresses, failed OAuth redirects or webhooks that point to an internal address. Do not copy a setting from an older n8n release without checking its current configuration reference.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Step 7: protect credentials and prepare backups

n8n stores workflow information and credentials on the VPS. Credentials are protected with encryption material that must remain available to decrypt existing data. Backing up only the workflow files is not enough.

  • Identify the actual n8n data directory used by the service account and include it in backups.
  • Store the n8n encryption key or equivalent secret separately from the VPS, with restricted access.
  • Protect environment files containing secrets with permissions readable only by the service account and administrators.
  • Back up the database or embedded data store according to the storage mode you selected.
  • Test restoration on a separate instance. A backup that has never been restored is not a verified recovery plan.
  • Decide how long to retain execution data and logs so storage growth does not unexpectedly fill the VPS.

When rebuilding a server, restore the data and the matching encryption material before attempting to open stored credentials. Losing the encryption material can make encrypted credentials unusable even when the data files survive.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step 8: upgrade an npm installation safely

Plan upgrades rather than running a global npm command during a busy production window. Read the release notes for the target n8n version and verify that its Node.js requirement still fits your installed runtime.

  1. Back up n8n data, credentials and encryption material.
  2. Record the currently installed n8n and Node.js versions.
  3. Stop the systemd service: sudo systemctl stop n8n.
  4. Install the intended n8n release with npm. For the latest package allowed by your compatibility plan, the command is npm install n8n -g; pin a specific version when your change process requires repeatability.
  5. Run n8n --version and start the service.
  6. Inspect sudo systemctl status n8n and sudo journalctl -u n8n, then test the editor, a representative workflow and a webhook.
  7. Keep a rollback plan. npm package rollback alone may not undo a data migration, so retain the backup and follow the target release’s migration guidance.

Because npm installs are deprecated from n8n 3.0, treat future upgrades as a possible migration decision rather than assuming the npm route will remain the long-term default.

Troubleshooting common VPS installation failures

Symptom Likely cause What to check
n8n: command not found The npm global binary directory is not on the account or systemd PATH. Run command -v n8n, inspect the npm prefix and use the absolute path in the service unit.
npm rejects the Node.js runtime The VPS is outside the supported 20.19–24.x range. Run node --version, remove conflicting installations from the shell path and install a supported release.
Service starts, then exits Wrong executable path, permissions, missing environment variables or a port already in use. Read journalctl -u n8n, run the command as the service account and check for another n8n process.
The editor works locally but not through the domain DNS, firewall, proxy upstream or TLS configuration is incorrect. Resolve the hostname, test the local listener, inspect proxy logs and confirm that HTTPS reaches the proxy.
Webhooks or OAuth callbacks use an internal URL The external host, protocol or webhook URL does not match the public proxy URL. Review n8n URL-related settings and the X-Forwarded-Proto and host headers sent by the proxy.
Stored credentials cannot be decrypted after migration The original encryption material was not restored or was changed. Restore the matching key or secret and verify its permissions before opening the data.

Production readiness checklist

  • Node.js reports a supported 20.19–24.x version.
  • n8n runs under a non-root account.
  • The service starts automatically and survives an SSH disconnect and a VPS reboot.
  • The application backend is not unnecessarily exposed to the public internet.
  • DNS points to the correct VPS or load balancer.
  • TLS terminates at a configured reverse proxy or equivalent front end.
  • Authentication is enabled and the initial owner account is protected.
  • Credentials, data and encryption material are included in tested backups.
  • Logs, disk usage and service failures are monitored.
  • You have a documented npm upgrade and rollback procedure.
  • You have decided whether the installation should migrate to Docker before n8n 3.0 becomes the normal path for new deployments.

Should you use npm for a new VPS installation?

Use npm when you are maintaining an existing installation, need a short-lived test environment or have a specific operational reason to avoid containers. For a new production VPS, the deprecation notice changes the decision: Docker is the documented direction for new n8n 3.0 deployments, while npm should be treated as a transitional route. Whichever method you choose, the operational obligations remain: secure SSH access, supported software, a private backend, HTTPS, backups, encryption-key protection and planned upgrades.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$419.99
Bestseller No. 3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit
$189.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.