Introducción

Eclipse Theia es un IDE en la nube extensible que se ejecuta en un servidor remoto y al que es posible acceder desde un navegador web. Visualmente, está diseñado para tener un aspecto y comportamiento similares a los de Microsoft Visual Studio Code. Lo que diferencia a Eclipse Theia de otras plataformas de software de IDE en la nube es su extensibilidad; se puede modificar usando extensiones personalizadas, que le permiten crear un IDE en la nube adaptado a sus necesidades.

En este tutorial, implementará Eclipse Theia en su servidor de Ubuntu 18.04 usando Docker Compose. Lo expondrá en su dominio usando nginx-proxy y lo protegerá con un certificado TLS de Let´s Encrypt, que proporcionará con un complemento. Para ver una versión más detallada de este tutorial, consulte Cómo configurar la plataforma de IDE en la nube de Eclipse Theia en Ubuntu 18.04.

Requisitos previos

eclipse theia illustration for: Requisitos previos
  • Un nombre de dominio registrado por completo. En este tutorial, se utilizará <^>theia.your-domain<^> en todo momento.

Paso 1: Implementar nginx-proxy con Let´s Encrypt

Cree el directorio en el que se almacenarán todos los datos para Eclipse Theia:

				
					
mkdir ~/eclipse-theia

				
			

Diríjase a este:

				
					
cd ~/eclipse-theia

				
			

Cree nginx-proxy-compose.yaml para almacenar la configuración de Docker Compose para nginx-proxy:

				
					
nano nginx-proxy-compose.yaml

				
			

Añada las siguientes líneas:

				
					
[label ~/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"

				
			

Aquí, definirá dos servicios que Docker Compose ejecutará: nginx-proxy y su complemento de Let´s Encrypt. Para el proxy, especificará jwilder/nginx-proxy como la imagen, asignará puertos HTTP y HTTPS, y definirá los volúmenes a los que se podrá acceder durante el tiempo de ejecución.

Guarde y cierre el archivo.

Implemente la configuración:

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

				
			

El resultado final tendrá el siguiente aspecto:

				
					
[secondary_label 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

				
			

Paso 2: Implementar Eclipse Theia con Docker

nginx-proxy prevé que las combinaciones de inicio de sesión se encuentren en un archivo con el nombre del dominio expuesto, en el formato htpasswd y almacenado en el directorio /etc/nginx/htpasswd del contenedor.

Instale htpasswd:

				
					
sudo apt install apache2-utils

				
			

El paquete apache2-utils contiene la utilidad htpasswd.

Cree el directorio /etc/nginx/htpasswd:

				
					
sudo mkdir -p /etc/nginx/htpasswd

				
			

Cree un archivo para almacenar los inicios de sesión de su dominio:

				
					
sudo touch /etc/nginx/htpasswd/&lt;^&gt;theia.your-domain&lt;^&gt;

				
			

Ejecute el siguiente comando con una combinación de nombre de usuario y contraseña:

				
					
sudo htpasswd /etc/nginx/htpasswd/&lt;^&gt;theia.your-domain&lt;^&gt; &lt;^&gt;username&lt;^&gt;

				
			

htpasswd agregará el par de nombre de usuario y contraseña con hash al final del archivo.

Cree la configuración para la implementación de Eclipse Theia:

				
					
nano eclipse-theia-compose.yaml

				
			

Añada las siguientes líneas:

				
					
[label ~/eclipse-theia/eclipse-theia-compose.yaml]

version: '2.2'



services:

  eclipse-theia:

    restart: always

    image: theiaide/theia:next

    init: true

    environment:

      - VIRTUAL_HOST=&lt;^&gt;theia.your-domain&lt;^&gt;

      - LETSENCRYPT_HOST=&lt;^&gt;theia.your-domain&lt;^&gt;

				
			

Definirá un servicio único llamado eclipse-theia con restart fijado en always y theiaide/theia:next como la imagen del contenedor. También fijará init en true. Luego, se especifican dos variables de entorno en la sección environment: VIRTUAL_HOST y LETSENCRYPT_HOST.

Guarde y cierre el archivo.

Ahora implemente Eclipse Theia ejecutando lo siguiente:

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

				
			

El resultado final tendrá este aspecto:

				
					
[secondary_label 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

				
			

Diríjase al dominio que usa para Eclipse Theia. Su navegador le mostrará un mensaje que le solicitará iniciar sesión. Entrará en Eclipse Theia y verá la GUI de su editor. También verá un candado que indica que la conexión es segura.

Conclusión

Ahora, tendrá instalado Eclipse Theia, un IDE en la nube versátil, en su servidor de Ubuntu 18.04 con Docker Compose y nginx-proxy. Lo protegió con un certificado TLS gratuito de Let´s Encrypt y configuró la instancia para que exija las credenciales de inicio de sesión del usuario. Con él puede trabajar en su código fuente y sus documentos de forma individual o colaborar con su equipo. También puede intentar crear su propia versión de Eclipse Theia si necesita funciones adicionales. Para obtener más información sobre cómo hacerlo, consulte la documentación de Theia.