Bereitstellung von JavaScript-Anwendungen auf PythonLib: VPS, Docker und Cloud

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

Wie man die Angst verliert und mit dem Deployen beginnt: Ihre erste Produktionsumgebung

\n\n

Sie haben eine coole JavaScript-Anwendung geschrieben. Sie läuft lokal, die Tests bestehen, und in der Konsole gibt es keinen einzigen Fehler. Aber sobald die Frage aufkommt: „Und wie bringe ich das auf einen echten Server?“, geraten viele in Panik. VPS, Docker, Cloud-Plattformen – das klingt nach etwas aus dem DevOps-Bereich, nicht nach Frontend oder Backend mit Node.js.

\n\n

Eigentlich ist es einfacher, als es scheint. In diesem Artikel betrachten wir drei grundlegende Ansätze zur Bereitstellung von JavaScript-Anwendungen: auf VPS, in Docker und in die Cloud. Ich zeige Ihnen echte Codebeispiele, erkläre die Vor- und Nachteile jeder Methode, und Sie können die auswählen, die am besten zu Ihrem Projekt passt.

\n\n

Was ist ein Deploy und warum wird er überhaupt benötigt?

\n\n

Ein Deploy ist der Prozess des Ausrollens Ihrer Anwendung auf einem Server, wo sie den Nutzern rund um die Uhr zur Verfügung steht. Die lokale Entwicklung ist nur der erste Schritt. Ohne einen Deploy bleibt Ihr Projekt nur eine Sammlung von Dateien auf Ihrem Computer.

\n\n

Für JavaScript-Entwickler sind besonders drei Szenarien relevant:

\n\n
    \n
  • Deploy auf VPS – volle Kontrolle über den Server.
  • \n
  • Deploy in Docker – Isolation und Reproduzierbarkeit der Umgebung.
  • \n
  • Deploy auf Cloud-Plattformen – minimaler Aufwand mit der Infrastruktur.
  • \n
\n\n

Lassen Sie uns jede Option im Detail durchgehen.

\n\n

Deploy auf VPS: Manuelle Verwaltung und volle Kontrolle

\n\n

VPS (Virtual Private Server) ist ein virtueller Server, auf den Sie jedes Betriebssystem installieren und alles manuell konfigurieren können. Das ist der Klassiker, der maximale Flexibilität bietet.

\n\n

Schritt 1: Serverauswahl und -konfiguration

\n\n

Zuerst mieten wir einen VPS (z. B. bei DigitalOcean, Hetzner oder Timeweb). Die Mindestkonfiguration für Node.js ist 1 vCPU und 1 GB RAM. Wir wählen Ubuntu 22.04 LTS.

\n\n

Nachdem wir SSH-Zugang erhalten haben, führen wir die grundlegende Konfiguration durch:

\n\n
ssh root@Ihre_Server_IP\n\n# Pakete aktualisieren\napt update && apt upgrade -y\n\n# Node.js 20.x installieren\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt-get install -y nodejs\n\n# Überprüfung\nnode -v\nnpm -v
\n\n

Schritt 2: Repository klonen und Abhängigkeiten installieren

\n\n

Angenommen, Ihre Anwendung liegt auf GitHub. Klonen Sie sie auf den Server:

\n\n
git clone https://github.com/Ihr_Benutzername/Ihr_Repository.git\ncd Ihr_Repository\nnpm install --production
\n\n

Schritt 3: Umgebungsvariablen konfigurieren

\n\n

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

\n\n
nano .env\n\n# Beispielinhalt\nPORT=3000\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=Ihr_super_geheimer_Schlüssel
\n\n

Schritt 4: Start mit PM2

\n\n

PM2 ist ein Prozessmanager für Node.js. Er startet die Anwendung bei einem Absturz automatisch neu und hält sie am Laufen:

\n\n
npm install -g pm2\npm2 start app.js --name "my-app"\npm2 save\npm2 startup
\n\n

Fertig! Ihre Anwendung läuft auf Port 3000. Um sie über Port 80 verfügbar zu machen, verwenden Sie Nginx als Reverse Proxy.

\n\n
apt install nginx -y\nnano /etc/nginx/sites-available/default
\n\n

Fügen Sie innerhalb der Datei Folgendes ein:

\n\n
server {\n    listen 80;\n    server_name Ihre_Domain.de;\n\n    location / {\n        proxy_pass http://localhost:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n    }\n}
\n\n

Starten Sie Nginx neu:

\n\n
nginx -t\nsystemctl restart nginx
\n\n

Vorteile von VPS: volle Kontrolle, alles kann konfiguriert werden, niedrige Kosten.

\n

Nachteile: Sie müssen sich selbst um Sicherheit, Backups und Updates kümmern.

\n\n

Deploy in Docker: Containerisierung für Reproduzierbarkeit

\n\n

D

Blogs

Buchempfehlungen