Bereitstellung einer TypeScript-Anwendung auf einer VPS: Schritt-für-Schritt-Anleitung
Sie haben eine coole Anwendung in TypeScript geschrieben. Lokal funktioniert alles perfekt, aber es ist Zeit, das Projekt der Welt zu zeigen. Die Bereitstellung auf einer VPS (Virtual Private Server) ist ein logischer und flexibler Schritt. Im Gegensatz zu Cloud-Plattformen gibt Ihnen eine VPS die volle Kontrolle über die Umgebung.
In diesem Artikel werden wir den schrittweisen Prozess der Bereitstellung einer TypeScript-Anwendung auf einer VPS durchgehen. Wir werden Node.js, PM2 zur Prozessverwaltung und Nginx als Reverse Proxy verwenden. Alle Beispiele sind in TypeScript.
Es werden grundlegende Kenntnisse in der Arbeit mit Linux und SSH vorausgesetzt.
1. Servervorbereitung und Verbindung
Der erste Schritt ist die Anmietung einer VPS (DigitalOcean, Vultr, Timeweb usw.) und die Verbindung per SSH.
ssh root@ihre_server_ipAktualisieren wir sofort die Pakete und installieren die notwendigen Dienstprogramme:
apt update && apt upgrade -yapt install curl git nginx -yInstallieren wir Node.js (wir empfehlen die LTS-Version):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -apt install -y nodejsÜberprüfen wir die Versionen:
node -vnpm -v2. Repository klonen und TypeScript kompilieren
Jetzt klonen wir Ihr Projekt. Als Beispiel verwenden wir eine einfache Express-Anwendung in TypeScript:
git clone https://github.com/ihr_benutzername/ihr_repository.gitcd ihr_repositoryInstallieren wir die Abhängigkeiten:
npm installTypeScript muss in JavaScript kompiliert werden. Normalerweise geschieht dies mit dem Befehl:
npm run buildIn der package.json sollte dies wie folgt definiert sein:
{ "scripts": { "build": "tsc", "start": "node dist/index.js" }}Überprüfen Sie, ob im Ordner dist die kompilierten Dateien vorhanden sind.
3. Installation und Konfiguration von PM2
PM2 ist ein Prozessmanager für Node.js. Es startet die Anwendung bei einem Absturz neu, unterstützt Logs und Clustering.
Installieren wir PM2 global:
npm install pm2 -gStarten wir die Anwendung:
pm2 start dist/index.js --name "my-typescript-app"Speichern wir die Prozessliste, damit PM2 sie nach einem Serverneustart wiederherstellt:
pm2 savepm2 startupPM2 gibt einen Befehl aus, der ausgeführt werden muss (normalerweise systemctl enable pm2-root). Kopieren und führen Sie ihn aus.
Den Status können Sie mit folgendem Befehl überprüfen:
pm2 status4. Konfiguration von Nginx als Reverse Proxy
Nginx wird Anfragen auf Port 80 (HTTP) entgegennehmen und an Ihre Anwendung weiterleiten (z. B. auf Port 3000).
Erstellen wir eine Konfigurationsdatei:
nano /etc/nginx/sites-available/my-typescript-appFügen Sie den folgenden Code ein (ändern Sie server_name auf Ihre Domain oder IP):
server { listen 80; server_name ihre_domain.ru www.ihre_domain.ru;
location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}Aktivieren wir die Seite:
ln -s /etc/nginx/sites-available/my-typescript-app /etc/nginx/sites-enabled/nginx -tsystemctl restart nginxJetzt ist Ihre Anwendung über die IP oder Domain erreichbar.
5. Einrichtung von HTTPS (SSL) mit Certbot
Ohne HTTPS geht heutzutage nichts. Wir verwenden Let's Encrypt und Certbot.
Installieren wir Certbot:
apt install certbot python3-certbot-nginx -yStarten wir die Zertifikatsausstellung:
certbot --nginx -d ihre_domain.ru -d www.ihre_domain.ru```