Wie man die Angst verliert und mit dem Deployen beginnt: Ihre erste Produktionsumgebung
\n\nSie 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\nEigentlich 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\nWas ist ein Deploy und warum wird er überhaupt benötigt?
\n\nEin 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\nFü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
Lassen Sie uns jede Option im Detail durchgehen.
\n\nDeploy auf VPS: Manuelle Verwaltung und volle Kontrolle
\n\nVPS (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\nSchritt 1: Serverauswahl und -konfiguration
\n\nZuerst 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\nNachdem wir SSH-Zugang erhalten haben, führen wir die grundlegende Konfiguration durch:
\n\nssh 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\nSchritt 2: Repository klonen und Abhängigkeiten installieren
\n\nAngenommen, Ihre Anwendung liegt auf GitHub. Klonen Sie sie auf den Server:
\n\ngit clone https://github.com/Ihr_Benutzername/Ihr_Repository.git\ncd Ihr_Repository\nnpm install --production\n\nSchritt 3: Umgebungsvariablen konfigurieren
\n\nSpeichern Sie Geheimnisse niemals im Code. Erstellen Sie eine .env-Datei:
nano .env\n\n# Beispielinhalt\nPORT=3000\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=Ihr_super_geheimer_Schlüssel\n\nSchritt 4: Start mit PM2
\n\nPM2 ist ein Prozessmanager für Node.js. Er startet die Anwendung bei einem Absturz automatisch neu und hält sie am Laufen:
\n\nnpm install -g pm2\npm2 start app.js --name "my-app"\npm2 save\npm2 startup\n\nFertig! Ihre Anwendung läuft auf Port 3000. Um sie über Port 80 verfügbar zu machen, verwenden Sie Nginx als Reverse Proxy.
\n\napt install nginx -y\nnano /etc/nginx/sites-available/default\n\nFügen Sie innerhalb der Datei Folgendes ein:
\n\nserver {\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\nStarten Sie Nginx neu:
\n\nnginx -t\nsystemctl restart nginx\n\nVorteile von VPS: volle Kontrolle, alles kann konfiguriert werden, niedrige Kosten.
\nNachteile: Sie müssen sich selbst um Sicherheit, Backups und Updates kümmern.
\n\nDeploy in Docker: Containerisierung für Reproduzierbarkeit
\n\nD