Tutorial

Cómo configurar la plataforma de IDE en la nube de Eclipse Theia en Ubuntu 18.04 [Guía de inicio rápido]

QuickstartCloud Computing

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

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:

~/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:

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/theia.your-domain

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

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

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:

~/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

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_HOSTy 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:

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.

GUI de Eclipse Theia

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.

Creative Commons License