Tutorial

So richten Sie die Eclipse-Theia-Cloud-IDE-Plattform unter Ubuntu 18.04 ein [Schnellstart]

Published on April 24, 2020
Deutsch
So richten Sie die Eclipse-Theia-Cloud-IDE-Plattform unter Ubuntu 18.04 ein [Schnellstart]

Einführung

Eclipse Theia ist eine erweiterbare Cloud-IDE, die auf einem Remote-Server läuft und von einem Webbrowser aus zugänglich ist. Visual ist sie so konzipiert, dass sie ähnlich wie Microsoft Visual Studio aussieht und sich auch ähnlich verhält. Was Eclipse Theia von anderer Cloud-IDE-Software unterscheidet, ist die Erweiterbarkeit; sie kann mit benutzerdefinierten Erweiterungen modifiziert werden, damit Sie eine Cloud-IDE für Ihre Bedürfnisse erstellen können.

In diesem Tutorial verwenden Sie Eclipse Theia auf Ihrem Ubuntu-18.04-Server mit Docker Compose. Sie machen ihn auf Ihrer Domäne mit nginx-proxy verfügbar und sichern ihn mit einem Let’s Encrypt TLS-Zertifikat, dem Sie ein Add-on hinzufügen. Eine ausführlichere Version dieses Tutorials finden Sie unter So richten Sie die Eclipse-Theia-Cloud-IDE-Plattform unter Ubuntu 18.04 ein.

Voraussetzungen

Schritt 1 – Einsatz von nginx-proxy mit Let’s Encrypt

Erstellen Sie das Verzeichnis, um alle Daten für Eclipse Theia zu speichern:

  1. mkdir ~/eclipse-theia

Navigieren Sie dorthin:

  1. cd ~/eclipse-theia

Erstellen Sie nginx-proxy-compose.yaml, um die Docker Compose-Konfiguration für nginx-proxy zu speichern:

  1. nano nginx-proxy-compose.yaml

Fügen Sie die folgenden Zeilen hinzu:

~/eclipse-theia/nginx-proxy-compose.yaml
version: '2'

services:
  nginx-proxy:
    restart: always
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/etc/nginx/htpasswd:/etc/nginx/htpasswd"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "/etc/nginx/certs"

  letsencrypt-nginx-proxy-companion:
    restart: always
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    volumes_from:
      - "nginx-proxy"

Hier definieren Sie zwei Dienste, die Docker Compose ausführen wird, nginx-proxy und seinen Let’s Encrypt-Begleiter. Für den Proxy geben Sie jwilder/nginx-proxy als Image ein, ordnen Sie HTTP- und HTTPS-Ports zu und definieren Sie Volumes, die während der Laufzeit zugänglich sind.

Speichern und schließen Sie die Datei.

Stellen Sie die Konfiguration bereit:

  1. docker-compose -f nginx-proxy-compose.yaml up -d

Die endgültige Ausgabe sieht ungefähr so aus:

Output
Creating network "eclipse-theia_default" with the default driver Pulling nginx-proxy (jwilder/nginx-proxy:)... latest: Pulling from jwilder/nginx-proxy 8d691f585fa8: Pull complete 5b07f4e08ad0: Pull complete ... Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28 Status: Downloaded newer image for jwilder/nginx-proxy:latest Pulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)... latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion 89d9c30c1d48: Pull complete 668840c175f8: Pull complete ... Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a Status: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latest Creating eclipse-theia_nginx-proxy_1 ... done Creating eclipse-theia_letsencrypt-nginx-proxy-companion_1 ... done

Schritt 2 – Einsatz des dockerisierten Eclipse Theia

nginx-proxy geht davon aus, dass Log-In-Kombinationen in einer Datei vorliegen, die nach der verfügbar gestellten Domäne benannt wurde, im Format htpasswd vorliegen und unter dem Verzeichnis /etc/nginx/htpasswd im Container gespeichert sind.

Installieren Sie htpasswd:

  1. sudo apt install apache2-utils

Das apache2-utils-Paket enthält das htpasswd-Dienstprogramm.

Erstellen Sie das Verzeichnis /etc/nginx/htpasswd:

  1. sudo mkdir -p /etc/nginx/htpasswd

Erstellen Sie eine Datei, um die Logins für Ihre Domäne zu speichern:

  1. sudo touch /etc/nginx/htpasswd/theia.your-domain

Führen Sie den folgenden Befehl mit einem Benutzernamen und einer Passwort-Kombination aus:

  1. sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username

htpasswd fügt den Benutzernamen und ein Passwort-Paar mit Hash am Ende der Datei hinzu.

Erstellen Sie die Konfiguration für die Bereitstellung von Eclipse Theia:

  1. nano eclipse-theia-compose.yaml

Fügen Sie die folgenden Zeilen hinzu:

~/eclipse-theia/eclipse-theia-compose.yaml
version: '2.2'

services:
  eclipse-theia:
    restart: always
    image: theiaide/theia:next
    init: true
    environment:
      - VIRTUAL_HOST=theia.your-domain
      - LETSENCRYPT_HOST=theia.your-domain

Sie definieren einen einzigen Dienst namens eclipse-theia mit einem restart, der auf always eingestellt ist und theiaide/theia:next als Container-Image. Außerdem setzen Sie init auf true. Dann bestimmen Sie zwei Umgebungsvariablen im Abschnitt environment: VIRTUAL_HOST und LETSENCRYPT_HOST.

Speichern und schließen Sie die Datei.

Stellen Sie jetzt Eclipse Theia bereit, indem Sie Folgendes ausführen:

  1. docker-compose -f eclipse-theia-compose.yaml up -d

Der endgültige Ausgabe sieht ungefähr so aus:

Output
... Pulling eclipse-theia (theiaide/theia:next)... next: Pulling from theiaide/theia 63bc94deeb28: Pull complete 100db3e2539d: Pull complete ... Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109 Status: Downloaded newer image for theiaide/theia:next Creating eclipse-theia_eclipse-theia_1 ... done

Navigieren Sie zur Domäne, die Sie für Eclipse Theia verwenden. Ihr Browser zeigt Ihnen eine Eingabeaufforderung, mit der Sie zur Anmeldung aufgefordert werden. Sie rufen Eclipse Theia auf und sehen die Editor-GUI. Außerdem sehen Sie ein Schloss, das anzeigt, dass die Verbindung sicher ist.

Eclipse Theia GUI

Zusammenfassung

Sie haben jetzt Eclipse Theia, eine vielseitige Cloud IDE, auf Ihrem Ubuntu-18.04-Server mit Docker Compose und nginx-proxy installiert. Sie haben es mit einem kostenlosen Let’s Encrypt TLS-Zertifikat gesichert und eine Instanz eingerichtet, um Anmeldedaten des Benutzers anzufordern. Sie können damit an Ihrem Quellcode und Dokumenten einzeln arbeiten oder im Team zusammenarbeiten. Sie können auch versuchen, Ihre eigene Version von Eclipse Theia zu erstellen, wenn Sie zusätzliche Funktionen benötigen. Weitere Informationen dazu finden Sie unter Theia Docs.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar
Savic

author



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

I set it up this way, but when I visit the domain (and enter username & password), Theia is stuck on the loading screen. If I expose the port 3000 in eclipse-theia-compose.yaml everything works fine, so it‘s an nginx issue. (I obviously can‘t keep it that way, because that way it‘s without SSL & password protection.)

The issue was already mentioned here: https://github.com/theia-ide/theia-apps/issues/129. I tried adding the proposed solution as a manual configuration in /etc/nginx/vhost.d, but it didn’t change anything. However, it shouldn’t make a difference anyways, because according to the nginx-proxy repo this configuration is set by default anyways.

I replicated the steps from this tutorial one-by-one. Why doesn’t it work?

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel