Einleitung: Warum ist ein VPS die ideale Lösung für Ihre Node.js-Anwendung?
\nSie haben eine coole Anwendung in JavaScript (Node.js) geschrieben, lokal getestet und möchten nun, dass sie rund um die Uhr im Internet verfügbar ist. Shared-Hosting ist aufgrund von Einschränkungen oft nicht für Node.js geeignet, und Cloud-Dienste (Heroku, Railway) können teuer oder in Bezug auf die Leistung unberechenbar sein. Ein virtueller privater Server (VPS) ist der goldene Mittelweg: volle Kontrolle, hohe Leistung und ein erschwinglicher Preis.
\nIn dieser Schritt-für-Schritt-Anleitung werden wir den Prozess der Bereitstellung einer JavaScript (Node.js)-Anwendung auf einem VPS von Grund auf durchgehen. Sie erfahren, wie Sie den Server konfigurieren, die erforderliche Software installieren, die Anwendung sicher starten und sie über eine Domain verfügbar machen. Alle Codebeispiele sind funktionsfähig und getestet.
\n\n1. Servervorbereitung: Ersteinrichtung des VPS
\nZunächst müssen Sie einen VPS bei einem beliebigen Anbieter mieten (DigitalOcean, Vultr, Timeweb, Selectel). Mindestanforderungen: 1 vCPU, 1-2 GB RAM, 20-30 GB SSD. Das Betriebssystem ist Ubuntu 22.04 LTS (die stabilste Version).
\n\n1.1. Verbindung zum Server per SSH
\nNachdem Sie die IP-Adresse und das Passwort erhalten haben, verbinden Sie sich über das Terminal (Mac/Linux) oder PuTTY (Windows) mit dem Server:
\nssh root@Ihre_Server_IP\nÄndern Sie sofort das Passwort und erstellen Sie einen neuen Benutzer (als root zu arbeiten ist eine schlechte Praxis):
\nadduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user\n\n1.2. Systemaktualisierung und Installation von Basispaketen
\nsudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential\nKonfigurieren Sie die grundlegende Firewall UFW (lassen Sie nur SSH und die Ports zu, die Sie verwenden werden):
\nsudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable\n\n2. Installation von Node.js und dem Prozessmanager PM2
\nFür den Betrieb der JavaScript-Anwendung auf dem Server benötigen wir Node.js. Wir verwenden den offiziellen Versionsmanager NodeSource, um die aktuelle LTS-Version zu installieren:
\n\n2.1. Installation von Node.js (v20 LTS)
\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs\nÜberprüfen Sie die Installation:
\nnode -v # v20.x.x\nnpm -v # 10.x.x\n\n2.2. Installation und Konfiguration von PM2
\nPM2 ist ein fortschrittlicher Prozessmanager für Node.js. Er startet die Anwendung bei einem Absturz automatisch neu, verwaltet Logs und ermöglicht das Ausführen mehrerer Instanzen (Clustering).
\nsudo npm install -g pm2\nKonfigurieren Sie den automatischen Start von PM2 beim Neustart des Servers:
\npm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user\n\n3. Bereitstellung der Anwendung und Start über PM2
\nJetzt sind wir bereit, Ihre JavaScript-Anwendung auf den Server zu übertragen. Es gibt zwei gängige Methoden: über Git (empfohlen) oder über SCP/FileZilla.
\n\n3.1. Repository klonen (Git)
\ncd /home/deploy_user\ngit clone https://github.com/Ihr_Benutzername/Ihr_Repository.git myapp\ncd myapp\nInstallieren Sie die Abhängigkeiten und bauen Sie das Projekt (falls erforderlich):
\nnpm install\n# Falls ein Build-Skript vorhanden ist: npm run build\n\n3.2. Erstellen der Konfigurationsdatei .env
\nSpeichern Sie Geheimnisse niemals im Code. Erstellen Sie eine .env-Datei im Projektordner:
\nnano .env\nBeispielinhalt:
\nPORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=Ihr_super_geheimer_Schlüssel\n\n3.3. Starten der Anwendung über PM2
\nAngenommen, der Einstiegspunkt Ihrer Anwendung ist app.js oder server.js. Starten Sie sie:
pm2 start app.js --name "myapp"\nÜberprüfen Sie den Status:
\npm2 status\npm2 logs myapp