Einführung

Code-Server ist Microsoft Visual Studio Code, der auf einem Remote-Server läuft und auf den Sie direkt von Ihrem Browser aus zugreifen können. Dadurch können Sie verschiedene Geräte verwenden, die verschiedene Betriebssysteme ausführen und immer eine einheitliche Entwicklungsumgebung haben.

In diesem Tutorial richten Sie die Code-Server-Cloud-IDE-Plattform auf Ihrem Ubuntu 18.04-Rechner ein und zeigen sie auf Ihrer Domäne, geschützt durch Let's Encrypt. Eine ausführlichere Version dieses Tutorials finden Sie unter So richten Sie die Code-Server-Cloud-IDE-Plattform unter Ubuntu 18.04 ein.

Voraussetzungen

sie illustration for: Voraussetzungen
  • Einen Server mit Ubuntu 18.04 mit mindestens 2 GB RAM, Root-Zugriff und einem Sudo-Konto ohne Rootberechtigung. Sie können dies einrichten, indem Sie sich an die Anweisungen unter Ersteinrichtung des Servers für Ubuntu 18.04 halten.
  • Einen vollständig registrierten Domänennamen für den Host Code-Server, der auf Ihren Server verweist. Dieses Tutorial verwendet durchgehend code-server.<^>your-domain<^>. Sie können einen Domänennamen unter Namecheap günstig erwerben oder einen kostenlosen von Freenom herunterladen oder einfach die Domänenregistrierungsstelle Ihrer Wahl verwenden.
  • Die beiden folgenden DNS-Einträge wurden für Ihren Server eingerichtet. Sie finden in dieser Einführung in DNS hosting Details dazu, wie Sie sie hinzufügen können.
  • Einen Eintrag mit <^>your-domain<^>, der auf die öffentliche IP-Adresse Ihres Servers verweist.
  • Einen Eintrag mit www.<^>your-domain<^>, der auf die öffentliche IP-Adresse Ihres Servers verweist.

Schritt 1 – Installation des Code-Servers

Erstellen Sie das Verzeichnis, um alle Daten für den Code-Server zu speichern:

				
					
mkdir ~/code-server

				
			

Navigieren Sie dorthin:

				
					
cd ~/code-server

				
			

Besuchen Sie die Seite Github-Veröffentlichungen des Code-Servers und wählen Sie den neuesten Linux-Build aus. Laden Sie ihn wie folgt herunter:

				
					
wget &lt;^&gt;https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz&lt;^&gt;

				
			

Entpacken Sie das Archiv:

				
					
tar -xzvf &lt;^&gt;code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz&lt;^&gt;

				
			

Navigieren Sie zum Verzeichnis mit der ausführbaren Datei des Code-Servers:

				
					
cd &lt;^&gt;code-server2.1692-vsc1.39.2-linux-x86_64&lt;^&gt;

				
			

Um auf die ausführbare Datei des Code-Servers auf Ihrem System zuzugreifen, kopieren Sie diese wie folgt:

				
					
sudo cp code-server /usr/local/bin

				
			

Erstellen Sie einen Ordner für den Code-Server, um die Benutzerdaten zu speichern:

				
					
sudo mkdir /var/lib/code-server

				
			

Erstellen Sie einen systemd-Dienst (code-server.service) im Verzeichnis /lib/systemd/system:

				
					
sudo nano /lib/systemd/system/code-server.service

				
			

Fügen Sie die folgenden Zeilen hinzu:

				
					
[label /lib/systemd/system/code-server.service]

[Unit]

Description=code-server

After=nginx.service



[Service]

Type=simple

Environment=PASSWORD=&lt;^&gt;your_password&lt;^&gt;

ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password

Restart=always



[Install]

WantedBy=multi-user.target

				
			
  • --host 127.0.0.1 verbindet ihn mit localhost.
  • --user-data-dir /var/lib/code-server legt sein Verzeichnis für die Benutzerdaten fest.
  • --auth Passwort gibt an, dass es die Besucher mit einem Passwort authentifizieren sollte.

Denken Sie daran, <^>your_password<^> durch Ihr gewünschtes Passwort zu ersetzen.

Speichern und schließen Sie die Datei.

Starten Sie den Code-Server-Dienst:

				
					
sudo systemctl start code-server

				
			

Überprüfen Sie, ob er richtig gestartet wurde:

				
					
sudo systemctl status code-server

				
			

Sie sehen eine Ausgabe, die der nachfolgenden ähnelt:

				
					
[secondary_label Output]

● code-server.service - code-server

   Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled)

   Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago

 Main PID: 5216 (code-server)

    Tasks: 23 (limit: 2362)

   CGroup: /system.slice/code-server.service

           ├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password

           └─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password

...

				
			

Aktivieren Sie den Code-Server-Dienst, um automatisch nach dem Neustart eines Servers zu starten:

				
					
sudo systemctl enable code-server

				
			

Schritt 2 – Code-Server verfügbar machen

Jetzt konfigurieren Sie Nginx als Reverseproxy für den Code-Server.

Erstellen Sie code-server.conf, um die Konfiguration zu speichern, damit der Code-Server in Ihrer Domäne verfügbar gemacht wird:

				
					
sudo nano /etc/nginx/sites-available/code-server.conf

				
			

Fügen Sie die folgenden Zeilen hinzu, um Ihren Server-Block mit den erforderlichen Anweisungen einzurichten:

				
					
[label /etc/nginx/sites-available/code-server.conf]

server {

	listen 80;

	listen [::]:80;



	server_name &lt;^&gt;code-server.your_domain&lt;^&gt;;



	location / {

		proxy_pass http://localhost:8080/;

		proxy_set_header Upgrade $http_upgrade;

		proxy_set_header Connection upgrade;

		proxy_set_header Accept-Encoding gzip;

	}

}

				
			

Ersetzen Sie <^>code-server.your_domain<^> durch Ihre gewünschte Domäne. Speichern und schließen Sie dann die Datei.

Um diese Site-Konfiguration aktiv zu machen, erstellen Sie einen Symlink davon:

				
					
sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

				
			

Testen Sie die Gültigkeit der Konfiguration:

				
					
sudo nginx -t

				
			

Sie sehen die folgende Ausgabe:

				
					
[secondary_label Output]

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

				
			

Starten Sie Nginx neu, damit die Konfiguration wirksam wird.

				
					
sudo systemctl restart nginx

				
			

Schritt 3 – Sicherung Ihrer Domäne

Jetzt sichern Sie Ihre Domäne mit einem Let's Encrypt TLS-Zertifikat.

Fügen Sie das Certbot-Paket zu Ihrem Server hinzu:

				
					
sudo add-apt-repository ppa:certbot/certbot

				
			

Installieren Sie Certbot und sein Nginx Plugin:

				
					
sudo apt install python-certbot-nginx

				
			

Konfigurieren Sie ufw, um den verschlüsselten Verkehr zu akzeptieren:

				
					
sudo ufw allow https

				
			

Die Ausgabe sieht wie folgt aus:

				
					
[secondary_label Output]

Rule added

Rule added (v6)

				
			

Laden Sie den Befehl neu, damit die Konfiguration wirksam wird:

				
					
sudo ufw reload

				
			

Die Ausgabe zeigt Folgendes:

				
					
[secondary_label Output]

Firewall reloaded

				
			

Navigieren Sie zu Ihrer Code-Server-Domäne.

Geben Sie Ihr Code-Server-Passwort ein. Daraufhin ist die Schnittstelle auf Ihrer Domäne verfügbar.

Installieren Sie zur Sicherung ein Encrypt TLS-Zertifikat mit Certbot.

Fordern Sie ein Zertifikat für Ihre Domäne wie folgt an:

				
					
sudo certbot --nginx -d &lt;^&gt;code-server.your_domain&lt;^&gt;

				
			

Geben Sie eine E-Mail-Adresse für dringende Informationen an, akzeptieren Sie die Geschäftsbedingungen von EFF und entscheiden Sie, ob Sie den gesamten HTTP-Verkehr auf HTTPS umleiten möchten.

Die Ausgabe sieht ungefähr wie folgt aus:

				
					
[secondary_label Output]

IMPORTANT NOTES:

 - Congratulations! Your certificate and chain have been saved at:

   /etc/letsencrypt/live/&lt;^&gt;code-server.your_domain&lt;^&gt;/fullchain.pem

   Your key file has been saved at:

   /etc/letsencrypt/live/&lt;^&gt;code-server.your_domain&lt;^&gt;/privkey.pem

   Your cert will expire on ... To obtain a new or tweaked

   version of this certificate in the future, simply run certbot again

   with the "certonly" option. To non-interactively renew *all* of

   your certificates, run "certbot renew"

...

				
			

Certbot hat TLS-Zertifikate erfolgreich erstellt und auf die Nginx-Konfiguration für Ihre Domäne angewendet.

Zusammenfassung

Jetzt haben Sie den Code-Server, eine vielseitige Cloud-IDE, auf Ihrem Ubuntu 18.04-Server installiert, auf Ihrer Domäne verfügbar gemacht und mit Let's Encrypt gesichert. Weitere Informationen finden Sie in der Visual Studio Code Dokumentation, wo Sie zusätzliche Funktionen und detaillierte Anweisungen zu anderen Komponenten des Code-Servers nachlesen können.