Bereitstellung einer JavaScript-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung von A bis Z

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum ist ein VPS die ideale Lösung für Ihre Node.js-Anwendung?

\n

Sie 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.

\n

In 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\n

1. Servervorbereitung: Ersteinrichtung des VPS

\n

Zunä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\n

1.1. Verbindung zum Server per SSH

\n

Nachdem Sie die IP-Adresse und das Passwort erhalten haben, verbinden Sie sich über das Terminal (Mac/Linux) oder PuTTY (Windows) mit dem Server:

\n
ssh root@Ihre_Server_IP
\n

Ändern Sie sofort das Passwort und erstellen Sie einen neuen Benutzer (als root zu arbeiten ist eine schlechte Praxis):

\n
adduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user
\n\n

1.2. Systemaktualisierung und Installation von Basispaketen

\n
sudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential
\n

Konfigurieren Sie die grundlegende Firewall UFW (lassen Sie nur SSH und die Ports zu, die Sie verwenden werden):

\n
sudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable
\n\n

2. Installation von Node.js und dem Prozessmanager PM2

\n

Fü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\n

2.1. Installation von Node.js (v20 LTS)

\n
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs
\n

Überprüfen Sie die Installation:

\n
node -v   # v20.x.x\nnpm -v    # 10.x.x
\n\n

2.2. Installation und Konfiguration von PM2

\n

PM2 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).

\n
sudo npm install -g pm2
\n

Konfigurieren Sie den automatischen Start von PM2 beim Neustart des Servers:

\n
pm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user
\n\n

3. Bereitstellung der Anwendung und Start über PM2

\n

Jetzt 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\n

3.1. Repository klonen (Git)

\n
cd /home/deploy_user\ngit clone https://github.com/Ihr_Benutzername/Ihr_Repository.git myapp\ncd myapp
\n

Installieren Sie die Abhängigkeiten und bauen Sie das Projekt (falls erforderlich):

\n
npm install\n# Falls ein Build-Skript vorhanden ist: npm run build
\n\n

3.2. Erstellen der Konfigurationsdatei .env

\n

Speichern Sie Geheimnisse niemals im Code. Erstellen Sie eine .env-Datei im Projektordner:

\n
nano .env
\n

Beispielinhalt:

\n
PORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=Ihr_super_geheimer_Schlüssel
\n\n

3.3. Starten der Anwendung über PM2

\n

Angenommen, der Einstiegspunkt Ihrer Anwendung ist app.js oder server.js. Starten Sie sie:

\n
pm2 start app.js --name "myapp"
\n

Überprüfen Sie den Status:

\n
pm2 status\npm2 logs myapp                

Blogs

Buchempfehlungen