Einleitung: Warum eine JavaScript-Anwendung auf einer VPS bereitstellen?
Die Entwicklung einer modernen Webanwendung in JavaScript (Node.js) ist nur die halbe Miete. Der zweite, ebenso wichtige Teil ist das Deployment, also die Bereitstellung Ihres Projekts auf einem echten, im Internet erreichbaren Server. Die Nutzung eines Virtual Private Servers (VPS) gibt Ihnen die volle Kontrolle über die Umgebung, im Gegensatz zu Shared Hosting. Sie können den Server nach Ihren Bedürfnissen konfigurieren, beliebige Abhängigkeiten installieren und eine hohe Leistung sicherstellen.
In dieser Anleitung gehen wir Schritt für Schritt den Prozess der Bereitstellung einer typischen JavaScript (Node.js)-Anwendung auf einer VPS durch. Wir decken alle Phasen ab: von der anfänglichen Servereinrichtung bis zum Betrieb der Anwendung im Produktionsmodus mit dem PM2-Prozessmanager und dem Nginx-Reverse-Proxy-Server. Der Artikel richtet sich an Entwickler, die bereits mit den Grundlagen von Node.js und der Linux-Kommandozeile vertraut sind.
1. VPS-Vorbereitung und erste Einrichtung
Der erste Schritt ist, eine VPS bei einem beliebigen Anbieter zu mieten (DigitalOcean, Linode, Vultr oder vergleichbare Anbieter). Empfohlener Mindestplan: 1 vCPU, 1-2 GB RAM. Betriebssystem — Ubuntu 22.04 LTS (oder neuer).
1.1. Verbindung zum Server per SSH
Nachdem Sie die IP-Adresse und das Root-Passwort erhalten haben, verbinden Sie sich von Ihrem Terminal aus mit dem Server:
ssh root@your_server_IPWenn Sie einen SSH-Schlüssel verwenden (empfohlen), geben Sie den Pfad zum privaten Schlüssel an:
ssh -i ~/.ssh/id_rsa root@your_server_IP1.2. Erstellen eines Benutzers und grundlegende Sicherheit
Arbeiten Sie niemals dauerhaft als Root. Erstellen Sie einen neuen Benutzer und gewähren Sie ihm sudo-Rechte:
adduser myuserusermod -aG sudo myuserKonfigurieren Sie dann einen SSH-Schlüssel für den neuen Benutzer (kopieren Sie den öffentlichen Schlüssel von Ihrem lokalen Rechner) und deaktivieren Sie die Passwort-Anmeldung in der Datei /etc/ssh/sshd_config:
PasswordAuthentication noStarten Sie den SSH-Dienst neu: sudo systemctl restart sshd.
1.3. Installieren der notwendigen Software
Aktualisieren Sie den Paketmanager und installieren Sie Node.js (wir empfehlen die LTS-Version über NodeSource), Git und Nginx:
sudo apt update && sudo apt upgrade -ycurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs git nginxÜberprüfen Sie die Versionen: node -v und npm -v.
2. Repository klonen und Abhängigkeiten installieren
Nachdem der Server bereit ist, übertragen wir Ihren Anwendungscode darauf.
2.1. Projekt klonen
Navigieren Sie zum Home-Verzeichnis des Benutzers und klonen Sie das Repository von GitHub (oder einem anderen Git-Hosting-Dienst):
cd /home/myusergit clone https://github.com/your_username/your_repository.git myappcd myapp2.2. Abhängigkeiten installieren und Testlauf
Installieren Sie alle npm-Pakete, die in der package.json aufgeführt sind:
npm installFalls das Projekt Umgebungsvariablen verwendet (z. B. für eine Datenbank oder API-Schlüssel), erstellen Sie eine .env-Datei und füllen Sie sie aus:
nano .envBeispielinhalt:
PORT=3000DATABASE_URL=mongodb://localhost:27017/mydbNODE_ENV=productionStarten Sie die Anwendung manuell, um sicherzustellen, dass sie funktioniert:
node app.jsÜberprüfen Sie die Erreichbarkeit über curl http://localhost:3000 oder öffnen Sie http://your_IP:3000 im Browser (nachdem Sie den Port in der Firewall freigegeben haben). Wenn alles funktioniert, stoppen Sie den Prozess (Strg+C).
3. Konfigurieren des PM2-Prozessmanagers
Eine Anwendung, die über node app.js gestartet wurde, wird beendet, sobald Sie die SSH-Sitzung schließen. Für einen dauerhaften Betrieb wird PM2 verwendet – ein Prozessmanager für Node.js, der die Anwendung automatisch neu startet, falls sie abstürzt, und der