Visual Studio Code hat sich zu einer der beliebtesten IDEs zum Programmieren entwickelt. Es verfügt über integrierte Git- und Docker-Unterstützung, einen Code-Debugger, Code-Autovervollständigung, die Fähigkeit, mit Remote-Dateien zu arbeiten, und unterstützt verschiedene Plugins.
Da alles in die Cloud verlagert wird, ist der Zugriff auf die IDE Ihrer Wahl von überall aus perfekt für die moderne Entwicklung. Cloud IDE ermöglicht die Echtzeit-Zusammenarbeit zwischen Entwicklern und steigert so die Produktivität. coder-server ist eine Anwendung, mit der Sie Visual Studio Code von einem Remote-Server ausführen und über jeden Browser zugänglich machen können.
In diesem Lernprogramm erfahren Sie, wie Sie Visual Studio Code IDE mithilfe der Code-Server-Anwendung auf Ihrem Rocky Linux 8-Server installieren. Sie werden es auch über eine öffentliche Domäne zusammen mit SSL-Unterstützung verfügbar machen.
Voraussetzungen
-
Ein Server mit Rocky Linux mit mindestens 2 GB RAM und 2 CPU-Kernen.
-
Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
-
Eine Domain, die registriert ist und auf den Server zeigt.
-
Nginx auf Ihrem Server installiert.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo dnf update
Schritt 1 – Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux wird mit der Firewall Firewall geliefert.
Überprüfen Sie, ob die Firewall ausgeführt wird.
$ sudo firewall-cmd --state
Die folgende Ausgabe beweist, dass die Firewall läuft.
running
Überprüfen Sie die aktuell erlaubten Dienste/Ports.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe zeigen.
dhcpv6-client mdns ssh
Port 8080 für Code-Server öffnen.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
HTTP- und HTTPS-Ports zulassen.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-all
Sie sollten eine ähnliche Ausgabe sehen.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 8080/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo systemctl reload firewalld
Schritt 2 – Code-Server installieren
code-server wird mit einem Installationsskript geliefert, das die Linux-Version erkennen und die entsprechende Binärdatei für Ihren Server installieren kann. Sie können das Installationsskript testen, um zu prüfen, ob es auf Ihrem Server funktioniert oder nicht.
Führen Sie den folgenden Befehl aus, um einen Probelauf der Installation durchzuführen.
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run Rocky Linux 8.4 (Green Obsidian) Installing v3.12.0 of the amd64 rpm package from GitHub. + mkdir -p ~/.cache/code-server + curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm + mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm + sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm rpm package has been installed. To have systemd start code-server now and restart on boot: sudo systemctl enable --now [email protected]$USER Or, if you don't want/need a background service you can run: code-server
Führen Sie das Setup nach dem erfolgreichen Probelauf aus.
$ curl -fsSL https://code-server.dev/install.sh | sh
Das Installationsskript fragt möglicherweise nach Ihrem sudo-Passwort.
Aktivieren Sie den Code-Server-Dienst.
$ sudo systemctl enable [email protected]$USER
Wenn Sie Ihre Instanz von Code-Server aktualisieren möchten, wiederholen Sie den Installationsvorgang. code-server bewahrt Ihre Dateien und Einstellungen.
Schritt 3 – Code-Server konfigurieren
code-server speichert seine Konfigurationsdatei unter ~/.config/code-server/config.yaml
. Zum Bearbeiten öffnen.
$ sudo nano ~/.config/code-server/config.yaml
Hier sind die Standardeinstellungen, die während der Installation festgelegt wurden.
bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false
Die Standardkonfigurationsdatei ermöglicht das folgende Verhalten:
- Überwachen Sie den Loopback-IP-Port 8080
- Aktiviert die Passwortautorisierung mit einem zufällig generierten Passwort
- Verwendet kein TLS
Sie können das Passwort ändern, indem Sie seinen Wert in der Datei ändern.
Wenn Sie eine gehashte Version des Passworts speichern möchten, müssen Sie zuerst npm installieren. Führen Sie nach der Installation den folgenden Befehl aus, um das Hash-Passwort festzulegen.
$ echo -n "thisismypassword" | npx argon2-cli -e $argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
Sie erhalten den gehashten Wert an Ihrem Terminal. Kopieren Sie es und fügen Sie es in die Konfigurationsdatei ein.
auth: password hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
Stellen Sie sicher, dass Sie das gehashte Passwort in Anführungszeichen setzen. Wenn Sie die Telemetrie deaktivieren möchten, fügen Sie die folgende Zeile in die Datei ein.
disable-telemetry: false
Es gibt weitere Optionen, die Sie in der Datei definieren können. Um alle anderen Optionen zu überprüfen, die Sie hinzufügen können, verwenden Sie den folgenden Befehl, um alle Flags aufzulisten.
$ code-server --help
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Schritt 4 – SSL installieren
Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Certbot-Tool herunterladen. Aber zuerst müssen wir das EPEL-Repository installieren.
Führen Sie die folgenden Befehle aus, um Certbot zu installieren.
$ sudo dnf install epel-release $ sudo dnf install certbot
Generieren Sie das SSL-Zertifikat.
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [email protected]
Der obige Befehl lädt ein Zertifikat auf /etc/letsencrypt/live/code-server.example.com
herunter Verzeichnis auf Ihrem Server. Achten Sie darauf, [email protected]
zu ersetzen mit Ihrer tatsächlichen E-Mail.
Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew
und zum Bearbeiten öffnen.
$ sudo nano /etc/cron.daily/certbot-renew
Fügen Sie den folgenden Code ein.
#!/bin/sh certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Schritt 5 – Nginx installieren und konfigurieren
Erstellen und öffnen Sie /etc/yum.repos.d/nginx.repo
Datei zum Erstellen des offiziellen Nginx-Repositorys.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Nginx-Server installieren.
$ sudo dnf install nginx
Aktivieren Sie den Nginx-Dienst.
$ sudo systemctl enable nginx
Erstellen Sie eine Konfigurationsdatei für den Code-Server in /etc/nginx/conf.d
Verzeichnis.
$ sudo nano /etc/nginx/conf.d/code-server.conf
Fügen Sie den folgenden Code ein.
server { listen 80; listen [::]:80; server_name code-server.example.com; return 301 https://$host$request_uri; } server { server_name code-server.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/code-server.access.log; error_log /var/log/nginx/code-server.error.log; ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } }
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Validieren Sie die Konfigurationsdatei.
$ sudo nginx -t
Wenn Sie die folgende Fehlermeldung erhalten, müssen Sie die Datei /etc/nginx/nginx.conf
bearbeiten um die Größe der Variable server_names_hash_bucket_size
hinzuzufügen/anzupassen .
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Öffnen Sie die Datei /etc/nginx/nginx.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf;
hinzu .
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden. Validieren Sie Nginx erneut.
Starten Sie den Nginx-Server.
$ sudo systemctl start nginx
Schritt 6 – Code-Server verwenden
Starten Sie die Domain https://code-server.example.com
in Ihrem Browser und geben Sie das Passwort ein, um Ihre Code-Server-Installation zu authentifizieren. Geben Sie das Passwort aus der Konfigurationsdatei ein.
code-server fragt beim ersten Start nach den VS-Code-Einstellungen.
Wählen Sie ein Farbschema, gehen Sie durch die verbleibenden Abschnitte und klicken Sie auf Als erledigt markieren wenn fertig.
Schlussfolgerung
Sie haben jetzt eine Visual Studio Code-Instanz auf Ihrem Rocky Linux-Server installiert. Im Vergleich zum offiziellen VS-Code gibt es dabei gewisse Vorbehalte. Die verfügbaren Erweiterungen sind nicht die offiziellen Erweiterungen, sondern werden aus dem inoffiziellen Repository des Code-Servers angeboten. Sie können die offiziellen Dokumente konsultieren, wenn Sie die offizielle Erweiterung installieren möchten. Es wird einige Anstrengungen erfordern. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.