WindowsVeröffentlicht am 27. Mai 20268 Min. Lesezeit

Node.js auf Windows Server installieren

Diese Anleitung zeigt, wie Sie Node.js auf Windows Server installieren. Sie erfahren, wie Sie Node.js LTS installieren, per MSI-Installer oder winget, und wie nvm-windows mehrere Versionen verwaltet. Danach stellen Sie eine Anwendung bereit, starten sie als Windows-Dienst beim Booten und öffnen die Firewall. Die Befehle sind für einen Windows-VPS von OuiHeberg gedacht, der mit Windows Server 2025 ausgeliefert wird. Verbinden Sie sich zuerst per Remotedesktop, wie in Verbindung zu einem Windows-VPS über RDP herstellen beschrieben.

Version und Methode wählen

Installieren Sie immer eine LTS-Version, sie wird länger gepflegt. Seit dem 28. Oktober 2026 ist Node.js 26 die aktive LTS. Node.js 24 und 22 erhalten weiterhin Sicherheitskorrekturen. Node.js 20 wird seit dem 30. April 2026 nicht mehr gepflegt. Der offizielle Release-Plan nennt die aktuellen Daten.

Drei Methoden stehen zur Wahl, um Node.js auf Windows Server zu installieren.

MethodeEinsatzStärkeGrenze
MSI-InstallerEine Anwendung in ProduktionSystemweit installiertFür eine neue Hauptversion neu installieren
wingetDasselbe mit einem BefehlIn Windows Server 2025 enthaltenNur eine Version gleichzeitig
nvm-windowsMehrere Versionen testenVersionswechsel mit einem BefehlIm Benutzerprofil installiert, für einen Dienst ungeeignet

Für eine Anwendung, die dauerhaft laufen soll, nehmen Sie den MSI-Installer oder winget. Der unten beschriebene Windows-Dienst nutzt dieses Node.js. Verwenden Sie nvm-windows auf einem Entwicklungs- oder Testserver.


Node.js mit dem MSI-Installer installieren

  1. Öffnen Sie auf dem VPS die Download-Seite von Node.js.

  2. Wählen Sie die LTS-Version für Windows auf x64 und laden Sie den Windows Installer (.msi) herunter.

  3. Starten Sie die Datei und behalten Sie die Standardoptionen. Die Option Add to PATH muss aktiv bleiben.

  4. Öffnen Sie ein neues PowerShell-Fenster und prüfen Sie die installierten Versionen.

node -v
npm -v

Die erste Zeile zeigt die Node.js-Version, zum Beispiel v26.13.0. Die zweite zeigt die npm-Version. Für eine andere Hauptversion deinstallieren Sie Node.js in den Windows-Einstellungen und installieren dann das MSI der gewünschten Version.


Node.js mit winget installieren

winget, der Paketmanager von Windows, ist laut Microsoft auf Windows Server 2025 vorinstalliert. Ein Befehl installiert die aktuelle LTS.

winget install OpenJS.NodeJS.LTS

Das Paket installiert dasselbe MSI, systemweit. Schließen Sie PowerShell, öffnen Sie es erneut und prüfen Sie mit node -v. Mit diesem Befehl aktualisieren Sie Node.js später.

winget upgrade OpenJS.NodeJS.LTS

nvm-windows für den Versionswechsel installieren

nvm-windows installiert mehrere Node.js-Versionen nebeneinander und wechselt zwischen ihnen. Es ist ein eigenes Projekt, unabhängig von nvm, das nur unter Linux und macOS läuft. Version 2 wird ohne Administratorrechte in Ihr Benutzerprofil installiert.

Node.js ist schon per MSI oder winget installiert? Deinstallieren Sie es zuerst. Zwei Node.js-Installationen im PATH sorgen für Verwirrung.

Installieren Sie nvm-windows mit winget. Alternativ laden Sie den Installer setup.exe von der Release-Seite von nvm-windows herunter.

winget install nvm-windows

Öffnen Sie ein neues PowerShell-Fenster. Prüfen Sie, ob nvm antwortet, und installieren und aktivieren Sie dann die neueste LTS.

# Prüfen, ob nvm-windows antwortet
nvm env

# Neueste LTS installieren und aktivieren
nvm install lts
nvm use lts

node -v
npm -v

nvm use ändert die Standardversion, die auch für spätere Sitzungen gilt. Die übrigen Befehle beschreibt die Dokumentation von nvm-windows.


Version wechseln und Node.js aktualisieren

nvm-windows legt jede Version in einem eigenen Ordner ab. So testen Sie Ihre Anwendung mit einer anderen Version, ohne etwas zu deinstallieren.

# Weitere Hauptversionen installieren
nvm install 24
nvm install 22

# Zu Node.js 24 wechseln
nvm use 24

# Installierte Versionen auflisten (* = aktive Version)
nvm list

Für eine neue LTS installieren Sie diese, testen Ihre Anwendung und entfernen dann die alte Version.

# Neue LTS installieren und aktivieren
nvm install lts
nvm use lts

# Alte Version entfernen, wenn alles funktioniert
nvm uninstall 22

Testen Sie Ihre Anwendung, bevor Sie in Produktion die Version wechseln. Manche npm-Pakete hängen von einer bestimmten Hauptversion von Node.js ab.

Mit dem MSI oder winget aktualisieren Sie über winget upgrade oder das MSI der neuen Version.


Eine Node.js-Anwendung auf Windows Server bereitstellen

Eine kleine Express-Anwendung prüft die Installation von Anfang bis Ende. Legen Sie den Projektordner an und installieren Sie Express.

mkdir C:\apps\monapp
cd C:\apps\monapp
npm init -y
npm install express

Erstellen Sie die Datei server.js und öffnen Sie sie im Editor.

New-Item server.js
notepad server.js

Fügen Sie diesen Code ein, speichern Sie und schließen Sie den Editor.

const express = require('express');
const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
  res.send('Hallo von OuiHeberg VPS!');
});

app.listen(PORT, () => {
  console.log(`Server läuft auf Port ${PORT}`);
});

Starten Sie die Anwendung.

node server.js

Öffnen Sie in einem Browser auf dem VPS http://localhost:3000. Die Seite zeigt diese Meldung.

Hallo von OuiHeberg VPS!

Mit Ctrl+C beenden Sie die Anwendung. So gestartet, endet sie auch, wenn Sie PowerShell schließen.


Die Anwendung mit PM2 überwachen

PM2 startet eine abgestürzte Node.js-Anwendung neu und sammelt ihre Logs. Es ist freie Software unter MIT-Lizenz. Das kostenpflichtige PM2 Plus ergänzt eine Online-Überwachung, die die meisten Projekte nicht brauchen.

npm install -g pm2
pm2 start C:\apps\monapp\server.js --name "monapp"
BefehlWirkung
pm2 listListet die Prozesse auf
pm2 logs monappZeigt die Logs live an
pm2 restart monappStartet die Anwendung neu
pm2 stop monappStoppt die Anwendung
pm2 monitZeigt CPU und Arbeitsspeicher live an
pm2 delete monappEntfernt die Anwendung aus PM2

PM2 läuft in Ihrer Windows-Sitzung. Sein Befehl pm2 startup, der es beim Booten neu startet, kennt laut Dokumentation von PM2 nur die Init-Systeme von Linux, macOS, BSD und Solaris. Unter Windows funktioniert er nicht. Damit die Anwendung mit dem Server startet, richten Sie sie als Windows-Dienst ein.


Die Anwendung beim Booten als Windows-Dienst starten

Ein Windows-Dienst startet mit dem Server, ohne offene Sitzung, und kann nach einem Absturz neu starten. Node.js kann sich nicht selbst als Dienst registrieren. WinSW, ein freies Werkzeug unter MIT-Lizenz, übernimmt das. Der Dienst nutzt das Node.js aus dem MSI oder winget, installiert in C:\Program Files\nodejs.

Legen Sie einen Ordner für den Dienst an und laden Sie WinSW unter dem Namen monapp.exe herunter. Der letzte Befehl öffnet die Konfigurationsdatei im Editor.

New-Item -ItemType Directory -Path C:\services\monapp
Invoke-WebRequest -Uri "https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe" -OutFile "C:\services\monapp\monapp.exe"
notepad C:\services\monapp\monapp.xml

Fügen Sie diese Konfiguration ein und speichern Sie. Die XML-Datei trägt denselben Namen wie die ausführbare Datei.

<service>
  <id>monapp</id>
  <name>monapp (Node.js)</name>
  <description>Node.js monapp</description>
  <executable>C:\Program Files\nodejs\node.exe</executable>
  <arguments>C:\apps\monapp\server.js</arguments>
  <workingdirectory>C:\apps\monapp</workingdirectory>
  <env name="NODE_ENV" value="production" />
  <startmode>Automatic</startmode>
  <onfailure action="restart" delay="10 sec" />
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>8</keepFiles>
  </log>
</service>

Das Tag onfailure startet die Anwendung neu, wenn sie stoppt. Die Logs monapp.out.log und monapp.err.log landen im Ordner des Dienstes, mit einer neuen Datei alle 10 MB.

Installieren und starten Sie den Dienst in einer PowerShell mit Administratorrechten.

# Port freigeben, falls PM2 die Anwendung schon ausführt
pm2 delete monapp

cd C:\services\monapp
.\monapp.exe install
.\monapp.exe start
.\monapp.exe status
Get-Service monapp

status sollte Started melden und Get-Service den Status Running zeigen. Der Dienst erscheint auch in der Konsole Dienste, mit automatischem Start. Starten Sie den VPS neu, um zu prüfen, ob die Anwendung von selbst wiederkommt.

# Nach einer Aktualisierung des Codes
.\monapp.exe restart

# Dienst entfernen
.\monapp.exe stop
.\monapp.exe uninstall

Standardmäßig startet WinSW den Dienst mit dem Konto LocalSystem, das alle Rechte auf der Maschine hat. Die Dokumentation zeigt, wie Sie mit dem Tag serviceaccount ein Konto mit weniger Rechten wählen.


Die Windows-Firewall für Node.js konfigurieren

Der Kundenbereich hat keine Netzwerk-Firewall für VPS. Nur die Windows-Firewall filtert die Verbindungen. Öffnen Sie die Ports in einer PowerShell mit Administratorrechten.

# Port 3000 (Tests)
New-NetFirewallRule -DisplayName "Node.js Dev" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow

# Port 80 (HTTP)
New-NetFirewallRule -DisplayName "Node.js HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

# Port 443 (HTTPS)
New-NetFirewallRule -DisplayName "Node.js HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

Prüfen Sie danach die Regeln. Jede sollte in der Spalte Enabled den Wert True zeigen.

Get-NetFirewallRule -DisplayName "Node.js*" | Select Name, Enabled

Öffnen Sie Port 3000 nur für Ihre Tests. In Produktion setzen Sie einen Reverse Proxy wie IIS oder Nginx auf die Ports 80 und 443. Er verteilt die Anfragen auf Ihre Anwendungen, jede auf ihrem eigenen Port (3000, 3001, 3002…). Die Anleitung IIS auf Windows Server installieren beschreibt die Einrichtung von IIS. Für den Rest der Firewall folgen Sie Die Windows Server-Firewall auf einem VPS konfigurieren.


Häufige Fehler beheben

„node“ wird nicht erkannt

PowerShell hat den neuen PATH noch nicht gelesen. Schließen Sie es und öffnen Sie es erneut. Mit nvm-windows führen Sie zusätzlich nvm use lts aus.

„nvm“ wird nicht erkannt

Öffnen Sie ein neues PowerShell-Fenster. Bleibt der Fehler, installieren Sie nvm-windows neu.

Fehler EACCES oder EPERM bei npm install -g

Starten Sie PowerShell als Administrator neu und führen Sie den Befehl erneut aus.

Port 3000 ist bereits belegt

Ein anderer Prozess belegt den Port, oft eine erste Kopie der Anwendung. Ermitteln Sie seine Nummer und beenden Sie ihn.

netstat -ano | findstr :3000
taskkill /PID [PID] /F

Ersetzen Sie [PID] durch die Nummer aus der letzten Spalte.

Der Dienst startet nicht

Lesen Sie monapp.err.log in C:\services\monapp. Prüfen Sie auch den Pfad zu node.exe in der XML-Datei. Ein mit nvm-windows installiertes Node.js sieht der Dienst nicht.

Nach einem Versionswechsel fehlen Module

Jede Node.js-Version hat ihre eigenen globalen Module. Führen Sie nach nvm use im Projektordner erneut npm install aus. Installieren Sie auch PM2 neu, falls Sie es nutzen.


Brauchen Sie Hilfe?

Eröffnen Sie ein Ticket über Tickets › Ticket öffnen oder über die Kachel Support kontaktieren unten auf der VPS-Seite. Wählen Sie im Feld Betreffender Dienst den VPS aus, das spart dem Team Zeit. Sie können Ihre Frage auch auf dem Discord von OuiHeberg stellen.

War dieser Artikel hilfreich?

596 Aufrufe
Diesen Artikel teilen
VPS Windows
Sie brauchen einen Windows-VPS?

Windows Server 2025 inklusive Lizenz, Remotedesktop-Zugang und Verwaltung im Kundenbereich.

Angebote ansehen →

Verwandte Artikel