Cómo configurar la plataforma Eclipse Theia Cloud IDE en CentOS 7

El autor seleccionó el Fondo de Código Libre y Abierto para recibir una donación como parte del programa Write for DOnations.
Introducción
A medida que las herramientas de desarrollo se trasladan a la nube, la adopción de plataformas IDE (entorno de desarrollo integrado) en la nube está creciendo. Los IDE en la nube son accesibles desde cualquier tipo de dispositivo moderno a través de navegadores web y ofrecen numerosas ventajas para escenarios de colaboración en tiempo real. Trabajar en un IDE en la nube proporciona un entorno de desarrollo y prueba unificado para usted y su equipo, al tiempo que minimiza las incompatibilidades de la plataforma. Los IDE en la nube son accesibles a través de navegadores web y están disponibles desde cualquier tipo de dispositivo moderno.
Eclipse Theia es un IDE en la nube extensible que se ejecuta en un servidor remoto y al que se puede acceder desde un navegador web. Visualmente, está diseñado para verse y comportarse de manera similar a Microsoft Visual Studio Code, lo que significa que admite muchos lenguajes de programación, tiene un diseño flexible y cuenta con una terminal integrada. Lo que diferencia a Eclipse Theia de otros software IDE en la nube es su extensibilidad; se puede modificar mediante 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 CentOS 7 mediante Docker Compose, una herramienta de orquestación de contenedores. Lo expondrá en su dominio mediante nginx-proxy, un sistema automatizado para Docker que simplifica el proceso de configuración de Nginx para que funcione como proxy inverso para un contenedor. También lo protegerá mediante un certificado TLS Let's Encrypt gratuito, que aprovisionará mediante su complemento especializado. Al final, tendrá Eclipse Theia ejecutándose en su servidor CentOS 7 disponible a través de HTTPS y requiriendo que el usuario inicie sesión.
Prerrequisitos
- Un servidor CentOS 7 con privilegios de root y una cuenta secundaria que no sea root. Puede configurar esto siguiendo nuestra Guía de configuración inicial del servidor para CentOS 7. Para este tutorial, el usuario que no sea root es
sammy
. - Docker instalado en su servidor. Siga los pasos 1 y 2 de Cómo instalar Docker en CentOS 7. Recuerde cerrar sesión y volver a iniciarla después de ejecutar este requisito previo. Para obtener una introducción a Docker, consulte El ecosistema de Docker: Introducción a los componentes comunes.
- Docker Compose instalado en su servidor. Siga el paso 1 de Cómo instalar Docker Compose en CentOS 7.
- Un nombre de dominio completamente registrado. Este tutorial se utilizará
theia.your-domain
en todo momento. Puede comprar un nombre de dominio en Namecheap, obtener uno gratis en Freenom o utilizar el registrador de dominios que prefiera. - Un registro DNS que
theia.your-domain
apunta a la dirección IP pública de su servidor. Puede consultar esta introducción a DNS de DigitalOcean para obtener detalles sobre cómo agregarlos.
Paso 1: Implementación de nginx-proxy con Let's Encrypt
En esta sección, implementará Eclipse Theia nginx-proxy
y su complemento Let's Encrypt mediante Docker Compose. Esto habilitará el aprovisionamiento y la renovación automáticos de certificados TLS, de modo que cuando implemente Eclipse Theia, este será accesible en su dominio a través de HTTPS.
Para los fines de este tutorial, almacenará todos los archivos en ~/eclipse-theia
. Cree el directorio ejecutando el siguiente comando:
- mkdir ~/eclipse-theia
Navega hasta él:
- cd ~/eclipse-theia
Almacenarás la configuración de Docker Compose nginx-proxy
en un archivo llamado nginx-proxy-compose.yaml
. Créalo usando tu editor de texto:
- vi nginx-proxy-compose.yaml
Añade 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í se definen dos servicios que ejecutará Docker Compose nginx-proxy
y su complemento Let's Encrypt. Para el proxy, se especifica jwilder/nginx-proxy
como imagen, se asignan puertos HTTP y HTTPS y se definen los volúmenes a los que tendrá acceso durante el tiempo de ejecución.
Los volúmenes son directorios en su servidor a los que el servicio definido tendrá acceso completo y que luego utilizará para configurar la autenticación de usuarios. Para lograrlo, utilizará el primer volumen de la lista, que asigna el /etc/nginx/htpasswd
directorio local al mismo que el del contenedor. En esa carpeta, nginx-proxy
espera encontrar un archivo cuyo nombre sea exactamente el mismo que el dominio de destino, que contenga las credenciales de inicio de sesión para la autenticación de usuarios en el htpasswd
formato ( username:hashed_password
).
Para el complemento, debe asignar un nombre a la imagen de Docker y permitir el acceso al socket de Docker definiendo un volumen. Luego, debe especificar que el complemento debe heredar el acceso a los volúmenes definidos para nginx-proxy
. Ambos servicios tienen restart
el valor always
, que ordena a Docker que reinicie los contenedores en caso de falla o reinicio del sistema.
Guarde y cierre el archivo.
Implemente la configuración ejecutando:
- docker-compose -f nginx-proxy-compose.yaml up -d
Aquí se pasa el nginx-proxy-compose.yaml
nombre del archivo al -f
parámetro del docker-compose
comando, que especifica el archivo que se va a ejecutar. Luego, se pasa el up
verbo que le indica que ejecute los contenedores. La -d
bandera habilita el modo independiente, lo que significa que Docker Compose ejecutará los contenedores en segundo plano.
El resultado final se verá así:
OutputCreating network "eclipse-theia_default" with the default driverPulling nginx-proxy (jwilder/nginx-proxy:)...latest: Pulling from jwilder/nginx-proxy8d691f585fa8: Pull complete5b07f4e08ad0: Pull complete...Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28Status: Downloaded newer image for jwilder/nginx-proxy:latestPulling letsencrypt-nginx-proxy-companion (jrcs/letsencrypt-nginx-proxy-companion:)...latest: Pulling from jrcs/letsencrypt-nginx-proxy-companion89d9c30c1d48: Pull complete668840c175f8: Pull complete...Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5aStatus: Downloaded newer image for jrcs/letsencrypt-nginx-proxy-companion:latestCreating eclipse-theia_nginx-proxy_1 ... doneCreating eclipse-theia_letsencrypt-nginx-proxy-companion_1 ... done
Ha implementado nginx-proxy
el complemento Let's Encrypt con Docker Compose. Ahora, debe configurar Eclipse Theia en su dominio y protegerlo.
Paso 2: Implementación de Eclipse Theia en formato Docker
En esta sección, creará un archivo que contenga todas las combinaciones de inicio de sesión permitidas que el usuario deberá ingresar. Luego, implementará Eclipse Theia en su servidor mediante Docker Compose y lo expondrá en su dominio seguro mediante nginx-proxy
.
Como se explicó en el paso anterior, nginx-proxy
se espera que las combinaciones de inicio de sesión estén en un archivo con el nombre del dominio expuesto, en el htpasswd
formato y almacenado en el /etc/nginx/htpasswd
directorio del contenedor. El directorio local que se asigna al virtual no necesita ser el mismo, como se especificó en la nginx-proxy
configuración.
Para crear combinaciones de inicio de sesión, primero deberá realizar la instalación htpasswd
ejecutando el siguiente comando:
- sudo yum install httpd-tools
El httpd-tools
paquete contiene la htpasswd
utilidad.
Crear el /etc/nginx/htpasswd
directorio:
- sudo mkdir -p /etc/nginx/htpasswd
Crea un archivo que almacenará los inicios de sesión de tu dominio:
- sudo touch /etc/nginx/htpasswd/theia.your-domain
Recuerde reemplazar theia.your-domain
con su dominio de Eclipse Theia.
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 username
con el nombre de usuario que desea agregar. Se le solicitará una contraseña dos veces. Después de proporcionarla, htpasswd
se agregará el par de nombre de usuario y contraseña cifrada 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. La almacenará en un archivo llamado eclipse-theia-compose.yaml
. Créelo con su editor de texto:
- vi eclipse-theia-compose.yaml
Añade 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
En esta configuración, se define un único servicio llamado con eclipse-theia
y como imagen del contenedor. También se configura para indicarle a Docker que lo use como administrador de procesos principal al ejecutar Eclipse Theia dentro del contenedor.restart
always
theiaide/theia:next
init
true
init
Luego, especifica dos variables de entorno en la environment
sección: VIRTUAL_HOST
y LETSENCRYPT_HOST
. La primera se transmite a nginx-proxy
y le indica en qué dominio se debe exponer el contenedor, mientras que la segunda es utilizada por su complemento Let's Encrypt y especifica para qué dominio se deben solicitar certificados TLS. A menos que especifique un comodín como valor para VIRTUAL_HOST
, deben ser iguales.
Recuerde reemplazar theia.your-domain
con el dominio deseado, luego guardar y cerrar el archivo.
Ahora implemente Eclipse Theia ejecutando:
- docker-compose -f eclipse-theia-compose.yaml up -d
El resultado final se verá así:
Output...Pulling eclipse-theia (theiaide/theia:next)...next: Pulling from theiaide/theia63bc94deeb28: Pull complete100db3e2539d: Pull complete...Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109Status: Downloaded newer image for theiaide/theia:nextCreating eclipse-theia_eclipse-theia_1 ... done
Luego, en su navegador, navegue hasta el dominio que está usando para Eclipse Theia. Su navegador le mostrará un mensaje solicitándole que inicie sesión. Después de proporcionar las credenciales correctas, ingresará a Eclipse Theia e inmediatamente verá su interfaz gráfica de usuario del editor. En su barra de direcciones verá un candado que indica que la conexión es segura. Si no lo ve inmediatamente, espere unos minutos hasta que se aprovisionen los certificados TLS y luego vuelva a cargar la página.
Ahora que puedes acceder de forma segura a tu IDE en la nube, comenzarás a usar el editor en el siguiente paso.
Paso 3: Uso de la interfaz 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 se puede personalizar para que puedas mover estas vistas a un orden diferente o quitarlas de la barra. De forma predeterminada, la primera vista abre el panel del Explorador, que ofrece una navegación en forma de árbol por la estructura del proyecto. Aquí puedes administrar tus carpetas y archivos: 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ás un archivo vacío abierto en una nueva pestaña. Una vez guardado, puedes ver el nombre del archivo en el panel lateral del Explorador. Para crear carpetas, haz clic derecho en la barra lateral del Explorador y haz clic en Nueva carpeta . Puedes expandir una carpeta haciendo clic en su nombre, así como arrastrando y soltando archivos y carpetas en las partes superiores de la jerarquía para moverlos a una nueva ubicación.
Las dos opciones siguientes brindan acceso a la función de búsqueda y reemplazo. A continuación, la siguiente ofrece una vista de los sistemas de control de código fuente que puede estar utilizando, como Git.
La vista final es la opción de depuración, que ofrece todas las acciones habituales para la depuración en el panel. Puede guardar las configuraciones de depuración en el launch.json
archivo.
La parte central de la interfaz gráfica de usuario es el editor, que se puede separar mediante pestañas para editar el código. Puede cambiar la vista de edición a un sistema de cuadrícula o a archivos uno al lado del otro. Como todos los IDE modernos, Eclipse Theia admite el resaltado de sintaxis para el 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.
Ha explorado una descripción general de alto nivel de la interfaz de Eclipse Theia y revisado algunas de las características más utilizadas.
Conclusión
Ahora tienes Eclipse Theia, un IDE de nube versátil, instalado en tu servidor CentOS 7 mediante Docker Compose y nginx-proxy
. Lo has protegido con un certificado TLS Let's Encrypt gratuito y has configurado la instancia para que requiera credenciales de inicio de sesión del usuario. Puedes trabajar en tu código fuente y documentos con él de forma individual o colaborar con tu equipo. También puedes intentar crear tu propia versión de Eclipse Theia si necesitas funciones adicionales. Para obtener más información sobre cómo hacerlo, visita la documentación de Theia.
Deja una respuesta