Zum Inhalt springen

AS213941 · Peering-20 % auf alle VPS mit dem Code NVH20 · Lieferung innerhalb von 60 Sekunden

Linux-VPSAb 2,49 € pro MonatWindows-VPSAb 3,49 € pro MonatFiveM-ServerAb 0,99 € pro MonatMinecraft-ServerAb 1,99 € pro Monat
VPS & Cloud

Sortimente

Linux-VPS mit NVMeRoot-Zugriff, Debian, Ubuntu, Alma…Windows-VPS mit RDPRemote-Desktop, inklusive LizenzDedizierte ServerIntel Xeon Gold, exklusive RessourcenVPS PterodactylVorinstallierte Spielesammlung

Netzwerk und Hosting

Anti-DDoSWebhostingWohnungswesenIP-TransitVPN

Fachleute

VPS für ResellerHändlerprogramm
Lösungen

Bots und Automatisierung

VPS-KI-AgentenEin Server für Ihre Code-Assistenten und autonomen AgentenVPS OllamaIhre private KI ohne GPU, Daten in FrankreichTelegram-Bot auf einem VPSPython oder Node.js – jederzeit erreichbarVPS-Bot für DiscordMusik, Moderation, Eintrittskarten: ohne UnterbrechungVPS-Bot für VintedDiscord-Überwachung und Benachrichtigungen rund um die UhrVPS n8nWorkflows ohne Begrenzung der AusführungsanzahlVPS VPNEin verschlüsselter Tunnel, der nach Frankreich führtWeb-Scraping auf einem VPSGeplante Datenerfassung, dedizierte IP-Adresse

Handel

VPS ForexIhre Roboter verwalten die Positionen während der NachtVPS MetaTrader 4Mehrere MT4-Terminals auf einem RechnerVPS MetaTrader 5Devisen, Indizes und Aktien in MT5NinjaTrader-VPSFutures und NinjaScript-StrategienVPS-Prop-FirmaChallenges und finanzierte Konten, Terminal stets onlineVPS Trading AfrikaMetaTrader in Paris, vom Maghreb oder aus Westafrika ausVPS RDPWindows-Remote-Desktop, stets aktivVPS-HandelsbotOpen-Source-Krypto-Bots, geschützte API-Schlüssel

Windows-Desktop

Windows 10-VPSFür Ihre Software, die Windows 10 erfordertWindows 11-VPSDer moderne Windows-Arbeitsplatz, von überall aus zugänglichVPS SEOGroße Websites crawlen, ohne Ihren PC zu überlastenVPS-StreamingEin OBS-Studio, das vom Rechenzentrum aus sendetWordPress-VPSSchnelle Websites auf NVMe-Festplatten
Marktplatz

Künstliche Intelligenz

OllamaLokale Sprachmodelle ohne externe APIOpen WebUIEine Chat-Oberfläche für Ihre Ollama-ModelleAnythingLLMPersönlicher KI-Assistent für Ihre Dokumente (PDFs, Websites, Notizen): Arbeitsbereiche, Suche …LangflowDer visuelle Editor „Langflow“ zum Erstellen von Agenten, RAG-Abläufen und KI-APIs, geschützt durch Ihre…FlowiseErstellen Sie Ihre Agenten und KI-Chatbots (LangChain, RAG, Tools) visuell mit Flowise, Ihrem…QdrantDie Vektordatenbank Qdrant für Ihre RAG- und semantischen Suchprojekte, API …

Handel

MetaTrader 5Offizielles MetaTrader 5-Terminal (MetaQuotes), im portablen Modus installiert, Verknüpfung auf dem…MetaTrader 4Offizielles MetaTrader 4-Terminal (MetaQuotes), im portablen Modus installiert, Verknüpfung auf dem…Forex-VPS-Paket (MT4 + MT5)MetaTrader 4 und MetaTrader 5 gemeinsam installiert, jeweils in einem eigenen portablen Ordner, auf einem VPS…NinjaTrader 8NinjaTrader 8-Plattform mit den entsprechenden Voraussetzungen (.NET 4.8, WebView2): installiert ab dem…FreqtradeOpen-Source-Krypto-Trading-Roboter mit der Benutzeroberfläche FreqUI, installiert im Modus…Interactive Brokers TWS / IB GatewayTrader Workstation oder IB Gateway (für die API und die Handelsroboter) von Interactive Brokers…

Bots und Agenten

Claude CodeDer Code-Agent von Anthropic in Ihrem TerminalCodex CLIDas OpenAI-Befehlszeilen-ToolTelegram-BotHosten Sie Ihren Telegram-Bot (Python, Node.js oder Bun): Ihren Code aus Git oder einer…Discord-BotHosten Sie Ihren Discord-Bot (discord.py, discord.js, Bun…): Ihren Code aus Git oder einer…OpenClawOpenClaw, der rund um die Uhr verfügbare Open-Source-KI-Assistent: Chatten Sie mit ihm auf…Hermes-AgentAutonomer Open-Source-KI-Agent von Nous Research mit Gedächtnis und Fähigkeiten, die…

Bereitstellung und Automatisierung

DockerDie Container-Engine und Docker Composen8nIhre Automatisierungen – ohne Begrenzung der AusführungsanzahlPortainerVerwalten Sie Ihre Docker-Container über den BrowserCoolifyStellen Sie Ihre Anwendungen über Git auf Ihrem Server bereitUptime KumaÜberwachen Sie Ihre Websites und Server, einschließlich Benachrichtigungen

Websites und Datenbanken

WordPressDas am häufigsten verwendete CMS auf einer schnellen Nginx-PlattformApache + PHP + MySQLWebserver, der für das Hosting Ihrer Websites bereit ist: Apache2, PHP und die gängigen PHP-Erweiterungen, MariaDB…MySQL (MariaDB)MySQL-kompatibler MariaDB-Datenbankserver mit Ihrer Datenbank und Ihrem…PleskDas Plesk Obsidian-Hosting-Panel wurde mit den empfohlenen Komponenten installiert: Websites…NextcloudIhre Cloud für Dateien, Kalender und Kontakte

Netzwerk und Sicherheit

WireGuardIhr verschlüsseltes VPN – kostenlos vorinstalliertVaultwardenEin selbst gehosteter Passwortmanager

Spielserver

FiveMFiveM-Server (FXServer + txAdmin), MariaDB und phpMyAdmin sind installiert und konfiguriert, unter…MinecraftSchlüsselfertiger Minecraft-Server für die Java Edition: Paper, Purpur, Fabric, NeoForge, Forge oder…RustRust-Server (Facepunch) mit LinuxGSM: automatische Updates, Neustart nach…Counter-Strike 2Dedizierter Counter-Strike-2-Server mit LinuxGSM (ca. 60 GB zum Herunterladen), GSLT-Token…PalworldPalworld-Dedizierter Server mit LinuxGSM: Name, Passwort, Anzahl der Spieler und Passwort für…ValheimDedizierter Valheim-Server mit LinuxGSM, passwortgeschützt (vom Spiel vorgeschrieben)…
Gaming

Spielserver

FiveM-ServertxAdmin, ESX, QBCoreMinecraft-ServerJava, Bedrock, ModpacksRust-ServerOxid, Kohlenstoff, ReinigungstücherNova-Life-ServerRP Nova-Life: Amboise

Schutz und Hilfsmittel

FiveM-Anti-DDoSKostenlose Tools
Ressourcen

Lernen

DokumentationBlog

Kundendienst

KontaktSLA-Verpflichtung
Angebote anzeigen Kundenbereich Peering · AS213941

Installation

Eine Node.js-Anwendung auf einem VPS mit PM2 und Nginx hosten

Vom NVHCloud-Team, 18.09.2026, Lesezeit: 4 Min.

API, Next.js- oder Express-Website, Discord-Bot: Eine Node.js-Anwendung lässt sich nicht einfach mit einem einfachen node index.js auf einem Server. Sie muss nach einem Absturz neu starten, beim Hochfahren des VPS automatisch neu gestartet werden, ihre Protokolle müssen gespeichert werden und sie muss über HTTPS bereitgestellt werden. PM2 übernimmt die ersten drei Punkte, Nginx den letzten.

1. Node.js installieren

Die von Ubuntu und Debian bereitgestellte Node.js-Version ist oft veraltet. Installieren Sie die aktuelle LTS-Version (Long-Term-Support) aus dem NodeSource-Repository und überprüfen Sie anschließend:

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
bash nodesource_setup.sh
apt install -y nodejs
node -v && npm -v

Verwenden Sie in der Produktion stets eine LTS-Version: Zwischenversionen werden nur wenige Monate lang gepflegt.

2. Den Code bereitstellen

Führen Sie die Anwendung unter einem eigenen Benutzer aus, niemals als Root. Laden Sie den Code herunter – idealerweise aus einem Git-Repository – und installieren Sie anschließend die Abhängigkeiten:

adduser --disabled-password --gecos "" app
su - app
git clone https://github.com/votre-compte/votre-projet.git monapp
cd monapp
npm ci --omit=dev

npm ci installiert genau die Versionen der Datei package-lock.json, wodurch sichergestellt wird, dass der Server dieselben Abhängigkeiten verwendet wie Ihr Rechner. Wenn das Projekt kompiliert werden muss, wie beispielsweise eine Next.js- oder TypeScript-Anwendung, installieren Sie bitte alle Abhängigkeiten und führen Sie anschließend folgenden Befehl aus: npm run build.

Speichern Sie vertrauliche Daten, wie beispielsweise das Bot-Token oder die Zugangsdaten zur Datenbank, in einer Datei .env außerhalb des Git-Repositorys, nur für diesen Benutzer lesbar: chmod 600 .env.

3. Mit PM2 starten

Installieren Sie PM2 systemweit als Root und starten Sie die Anwendung anschließend unter dem Benutzer app :

npm install -g pm2
su - app
cd monapp
pm2 start index.js --name monapp
pm2 status

Sollte die Anwendung abstürzen, startet PM2 sie sofort neu. Für ein Projekt, das mit einem npm-Skript gestartet wird, verwenden Sie pm2 start npm --name monapp -- start.

4. Automatischer Neustart beim Start des VPS

Immer am Seiten des Nutzers app, fragen Sie PM2 nach dem Befehl, mit dem es als Systemdienst registriert wird:

pm2 startup systemd

PM2 zeigt einen Befehl an, der mit sudo env PATH=... : Kopieren Sie sie und führen Sie sie als Root aus. Anschließend erneut als app, speichern Sie die Liste der Anwendungen, die neu gestartet werden sollen:

pm2 save

Starten Sie den VPS einmal neu, um zu überprüfen, ob die Anwendung von selbst wieder läuft. Denken Sie daran, den Vorgang zu wiederholen. pm2 save nach jedem Hinzufügen oder Entfernen einer Anwendung.

5. Eine Konfigurationsdatei, in der alles beschrieben ist

Anstelle langer Befehlszeilen beschreiben Sie Ihre Anwendungen in ecosystem.config.js, die Grundlage des Projekts:

module.exports = {
  apps: [{
    name: "monapp",
    script: "index.js",
    instances: 1,
    max_memory_restart: "400M",
    env: { NODE_ENV: "production", PORT: 3000 }
  }]
};
pm2 start ecosystem.config.js
pm2 save

max_memory_restart startet die Anwendung neu, wenn sie den angegebenen Speicherplatz überschreitet – eine nützliche Schutzmaßnahme gegen Speicherlecks. Bei einer zustandslosen API, instances: "max" und exec_mode: "cluster" starten eine exakte Kopie des Prozesses. Tun Sie dies nicht bei einem Discord-Bot: Jede Kopie würde sich separat anmelden und doppelte Antworten senden.

6. Zeitungen

pm2 logs monapp --lines 100   # journaux en direct
pm2 monit                     # processeur et mémoire en direct

Standardmäßig speichert PM2 die Protokolle unbegrenzt. Installieren Sie das Rotationsmodul, um zu verhindern, dass die Protokolle den Speicherplatz auf der Festplatte belegen:

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 20M
pm2 set pm2-logrotate:retain 7

7. Die Anwendung mit Nginx und HTTPS veröffentlichen

Ein Discord-Bot benötigt diesen Schritt nicht: Er stellt selbst eine Verbindung zu Discord her. Bei einer API oder einer Website stellen Sie bitte sicher, dass die Anwendung ausschließlich auf die lokale Adresse hört, zum Beispiel 127.0.0.1:3000, und stellen Sie Nginx davor. Erstellen Sie /etc/nginx/sites-available/api.monsite.fr :

server {
    listen 80;
    server_name api.monsite.fr;
    location / {
        proxy_pass http://127.0.0.1:3000;
        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";
    }
}
ln -s /etc/nginx/sites-available/api.monsite.fr /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d api.monsite.fr --redirect

Mit „Express“ können Sie Folgendes hinzufügen: app.set("trust proxy", 1) damit die Anwendung die tatsächliche Adresse der Besucher und nicht die von Nginx erkennt. Details zum Zertifikat finden Sie unter Nginx und HTTPS.

8. Die Anwendung aktualisieren

su - app
cd monapp
git pull
npm ci --omit=dev
pm2 reload monapp

pm2 reload Startet die Instanzen nacheinander im Cluster-Modus neu, ohne Unterbrechung. Im Einzelmodus entspricht dies einem Schnellneustart. Für sicherere Bereitstellungen sollten Sie die Anwendung in Container verpacken: siehe Docker und Docker Compose.

Häufig gestellte Fragen

Wie kann man einen Discord-Bot rund um die Uhr betreiben?

Starten Sie den Bot auf einem VPS mit PM2 wie in dieser Anleitung beschrieben und führen Sie anschließend „pm2 startup“ und „pm2 save“ aus: Der Bot startet nach einem Absturz oder einem Neustart des Servers automatisch neu. Ein Bot benötigt weder Nginx noch einen offenen Port, da er sich selbst mit Discord verbindet.

PM2 oder systemd?

Beide funktionieren. PM2 ist für Node.js-Projekte praktischer: Protokollierung, Überwachung, Cluster-Modus und unterbrechungsfreies Neuladen mit einem einzigen Befehl. systemd reicht für eine einzelne Anwendung aus und vermeidet eine zusätzliche Abhängigkeit.

Welche Node.js-Version sollte in der Produktion verwendet werden?

Es handelt sich stets um eine LTS-Version mit einer geraden Versionsnummer: Diese erhält etwa drei Jahre lang Sicherheitspatches. Vermeiden Sie ungerade Versionen, die nur wenige Monate lang gepflegt werden.

Wie viel Speicherplatz wird für eine Node.js-Anwendung benötigt?

Ein einfacher Discord-Bot oder eine kleine API benötigt zwischen 50 und 200 MB. Eine Next.js-Anwendung im Produktivbetrieb benötigt eher 300 MB bis 1 GB. Ein VPS mit 2 GB bietet ausreichend Platz für mehrere kleine Projekte.

WordPress-VPS

Ihre Websites auf NVMe, ohne Einschränkungen, inklusive Anti-DDoS.