Cómo instalar Eclipse IDE Theia Cloud en Ubuntu 18.04

27 feb 2021 8 min di lettura
Cómo instalar Eclipse IDE Theia Cloud en Ubuntu 18.04
Indice dei contenuti

Introducción

Con las herramientas de desarrollo que se trasladan a la nube, la adopción de plataformas en la nube del entorno de desarrollo integrado (IDE) está creciendo. Los IDE en la nube son accesibles desde todo tipo de dispositivos modernos a través de navegadores web y ofrecen numerosos beneficios para escenarios de colaboración en tiempo real. Trabajar en un IDE en la nube proporciona un entorno de prueba y desarrollo unificado para usted y su equipo, minimizando las incompatibilidades de plataforma. Accesibles a través de un navegador web, los IDE en la nube están disponibles desde todos los tipos de dispositivos modernos.

Eclipse Theia es un IDE de nube extensible que se ejecuta en un servidor remoto y es accesible desde un navegador web. Visualmente, está diseñado para verse y comportarse de manera similar a Microsoft Visual Studio, lo que significa que admite muchos lenguajes de programación, tiene un diseño flexible y tiene una terminal incorporada. Lo que separa a Eclipse Theia de otro software IDE en la nube es su extensibilidad; se puede cambiar utilizando extensiones personalizadas, que le permiten crear un IDE en la nube que se adapte a sus necesidades.

En este tutorial, implementará Eclipse Theia en su servidor Ubuntu 18.04 utilizando Docker Compose, una herramienta de orquestación de contenedores. Lo expondrá a su dominio utilizando nginx-proxy, un sistema automatizado para Docker que simplifica el proceso de configuración de Nginx para que actúe como un proxy inverso para un contenedor. También lo protegerá utilizando un certificado TLS Let's Encrypt gratuito, que proporcionará mediante su complemento especializado. Eventualmente, tendrá Eclipse Theia ejecutándose en su servidor Ubuntu 18.04 disponible a través de HTTPS y solicitando al usuario que inicie sesión.

Prerrequisitos

Si su intención es instalar Eclipse IDE Theia Cloud en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Configure nginx-proxy con Let's Encrypt

En esta sección, distribuye nginx-proxy y su complemento Let's Encrypt mediante Docker Compose. Esto permitirá el aprovisionamiento automático y la renovación del certificado TLS, de modo que cuando implemente Eclipse Theia será accesible en su dominio a través de HTTPS.

Para los propósitos de este tutorial, todos los archivos se almacenarán en ~/eclipse-theia. Cree el directorio ejecutando el siguiente comando:

mkdir ~/eclipse-theia

Navega hasta él:

cd ~/eclipse-theia

Almacenará la configuración de Docker Compose para nginx-proxy en un archivo llamado nginx-proxy-compose.yaml. Créelo usando su editor de texto:

nano nginx-proxy-compose.yaml

Agrega las siguientes líneas:

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í está definiendo dos servicios que Docker Compose ejecutará nginx-proxy y su compañero Let's Encrypt. Para el proxy, especifique jwilder/nginx-proxy como una imagen, asigne los puertos HTTP y HTTPS y defina los volúmenes a los que podrá acceder en tiempo de ejecución.

Los volúmenes son directorios en su servidor a los que el servicio definido tendrá acceso completo, que luego utilizará para configurar la autenticación de usuario. Para lograr esto, utilizará el primer volumen de la lista, que asigna el directorio local /etc/nginx/htpasswd al mismo contenedor. En esa carpeta, nginx-proxy espera encontrar un archivo con el nombre exacto del dominio de destino, que contiene las credenciales de inicio de sesión para la autenticación del usuario en formato htpasswd username:hashed_password ).

Para el complemento, asigne un nombre a la imagen de Docker y permita el acceso al socket de Docker definiendo un volumen. Luego, especifica que el complemento debe heredar el acceso a los volúmenes definidos para nginx-proxy. Ambos servicios tienen el parámetro de restart always, lo que indica a Docker que reinicie los contenedores en caso de que el sistema se bloquee o se reinicie.

Guarde y cierre el archivo.

Aplique la configuración ejecutando este comando:

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

Aquí pasa el nombre de archivo nginx-proxy-compose.yaml al parámetro -f docker-compose, que especifica el archivo a ejecutar. Luego, pasa el up que le dice que ejecute los contenedores. La -d habilita el modo separado, lo que significa que Docker Compose ejecutará los contenedores en segundo plano.

La salida final se verá así:

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

Ha implementado nginx-proxy y el componente Let's Encrypt usando Docker Compose. Ahora pasará a configurar Eclipse Theia en su dominio y protegerlo.

Configurar Dockerized Eclipse Theia

En esta sección, creará un archivo que contiene todas las combinaciones de acceso permitidas que un usuario deberá ingresar. Luego, implementará Eclipse Theia en su servidor usando Docker Compose.

Como se explicó en el paso anterior, nginx-proxy espera que las combinaciones de acceso se encuentren en un archivo con el nombre del dominio expuesto, en el htpasswd y se almacenen en el directorio del /etc/nginx/htpasswd. El directorio local que se asigna al directorio virtual no tiene que ser necesariamente el mismo que el especificado en la configuración del nginx-proxy

Para crear combinaciones de acceso, primero debe instalar htpasswd ejecutando el siguiente comando:

sudo apt install apache2-utils

El apache2-utils contiene la utilidad htpasswd

Cree el /etc/nginx/htpasswd:

sudo mkdir -p /etc/nginx/htpasswd

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

sudo touch /etc/nginx/htpasswd/theia.your_domain

Recuerde reemplazar theia.your_domain con su propio dominio.

Para agregar una combinación de nombre de usuario y contraseña, ejecute el siguiente comando:

sudo htpasswd /etc/nginx/htpasswd/theia.your_domain username

Reemplace el username con el nombre de usuario que desea agregar. Se le pedirá una contraseña dos veces. Después de proporcionarlo, htpasswd agregará el par de nombre de usuario y contraseña hash al final del archivo. Puede repetir este comando para todos los inicios de sesión que desee agregar.

Ahora creará la configuración para implementar Eclipse Theia. Lo guardará en un archivo llamado eclipse-theia-compose.yaml. Créelo usando su editor de texto:

nano eclipse-theia-compose.yaml

Agrega las siguientes líneas:

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

En esta configuración, definimos un único servicio llamado eclipse-theia con el restart establecido en always y theiaide/theia:next como la imagen del contenedor. También configuramos init en true para decirle a Docker que use init como el controlador del proceso principal cuando ejecute Eclipse Theia dentro del contenedor.

Luego, especifica dos variables de entorno en la sección de environment VIRTUAL_HOST y LETSENCRYPT_HOST. El primero se usa con nginx-proxy que le dice a qué dominio debe estar expuesto el contenedor, mientras que el segundo lo usa el complemento Let's Encrypt y especifica para qué dominio solicitar certificados TLS. A menos que especifique un carácter comodín como valor para VIRTUAL_HOST, deben ser iguales.

Recuerde reemplazar theia.your_domain con el dominio deseado, luego guarde y cierre el archivo.

Ahora implemente Eclipse Theia ejecutando:

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

La salida final se verá así:

...
 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

Luego, en su navegador, vaya al dominio que está usando para Eclipse Theia. Su navegador le mostrará un mensaje pidiéndole que inicie sesión. Después de proporcionar las credenciales correctas, ingresará a Eclipse Theia y verá inmediatamente la GUI de su editor. En la barra de direcciones verá un candado que indica que la conexión es segura. Si no lo ve de inmediato, espere unos minutos hasta que se aprovisionen los certificados TLS y luego vuelva a cargar la página.

Ahora que puede iniciar sesión de forma segura en su IDE en la nube, comenzará a usar el editor en el siguiente paso.

Utilice la interfaz de Eclipse Theia

En esta sección, explorará algunas de las características de la interfaz de Eclipse Theia.

En el lado izquierdo del IDE, hay una fila vertical de cuatro botones que abren las funciones más utilizadas en un panel lateral.

Esta barra es personalizable para que pueda mover estas vistas en un orden diferente o eliminarlas de la barra. De forma predeterminada, la primera vista abre el panel Explorador que proporciona una navegación de árbol de la estructura del proyecto. Puede administrar sus carpetas y archivos aquí, crearlos, eliminarlos, moverlos y cambiarles el nombre según sea necesario.

Después de crear un nuevo archivo a través del menú Archivo, verá un archivo vacío abierto en una nueva pestaña. Una vez guardado, puede ver el nombre del archivo en el panel lateral del Explorador. Para crear carpetas, haga clic con el botón derecho en la barra lateral del Explorador y haga clic en Nueva carpeta. Puede expandir una carpeta haciendo clic en su nombre, así como arrastrando y soltando archivos y carpetas en la parte superior de la jerarquía para moverlos a una nueva ubicación.

Las siguientes dos opciones brindan acceso a la función de búsqueda y reemplazo. A continuación, el siguiente le brinda una vista de los sistemas de control de fuente que podría estar utilizando, como Git.

La vista final es la opción del depurador, que proporciona todas las acciones de depuración comunes en el panel. Las configuraciones de depuración se pueden guardar en el archivo launch.json

La parte central de la GUI es su editor, que puede separar por pestañas para editar el código. Puede cambiar la vista de edición en un sistema de cuadrícula o en filas en mosaico. Como todos los IDE modernos, Eclipse Theia admite el resaltado de sintaxis para su código.

Puede acceder a una terminal escribiendo CTRL+SHIFT+` o haciendo clic en Terminal en el menú superior y seleccionando Nueva terminal. La terminal se abrirá en un panel inferior y su directorio de trabajo se establecerá en el espacio de trabajo del proyecto, que contiene los archivos y carpetas que se muestran en el panel lateral del Explorador.

Conclusión

Ahora tiene Eclipse Theia, un IDE de nube versátil, instalado en su servidor Ubuntu 18.04 usando Docker Compose y nginx-proxy. Lo aseguró con un certificado TLS Let's Encrypt gratuito y configuró la instancia para requerir las credenciales de inicio de sesión del usuario.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.