El autor seleccionó la Free and Open Source Fund para recibir una donación como parte del programa Write for DOnations.
Con el traslado de las herramientas de desarrollo a la nube, la adopción de plataformas de IDE (entorno de desarrollo integrado) en la nube se encuentra en expansión. Los IDE en la nube, a los cuales se puede acceder desde cualquier tipo de dispositivo moderno a través de los navegadores web, ofrecen numerosas ventajas para casos de colaboración en tiempo real. Trabajar en un IDE en la nube permite disponer de un entorno unificado de desarrollo y pruebas para usted y su equipo, a la vez que minimiza las incompatibilidades en la plataforma. Los IDE en la nube, a los que se puede acceder a través de los navegadores web, se encuentran disponibles en cualquier tipo de dispositivo moderno.
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. Desde el punto de vista visual, está diseñado para que luzca y se comporte de manera similar a Microsoft Visual Studio Code, lo cual significa que es compatible con muchos lenguajes de programación, tiene un diseño flexible y cuenta con una terminal integrada. 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.
A través de este tutorial, implementará Eclipse Theia en su servidor de Ubuntu 18.04 usando Docker Compose, una herramienta de orquestación de contenedores. Lo expondrá en su dominio usando nginx-proxy, un sistema automatizado para Docker que simplifica el proceso de configuración de Nginx a fin de que funcione como proxy inverso para un contenedor. También lo protegerá usando un certificado TLS de Let´s Encrypt gratuito, que proporcionará usando su complemento especializado. Al finalizar, dejará funcionando Eclipse Theia en su servidor de Ubuntu 18.04 disponible a través de HTTPS y hará que solicite al usuario iniciar sesión.
sammy
.theia.your_domain
en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios que elija.theia.your_domain
orientado a la dirección IP pública de su servidor. Puede utilizar esta introducción al DNS de DigitalOcean para obtener más información sobre cómo agregarlos.A lo largo de esta sección, implementará nginx-proxy
y su complemento de Let´s Encrypt utilizando Docker Compose. Esto permitirá el suministro y la renovación automática de certificados TLS, para que cuando implemente Eclipse Theia sea posible acceder a este en su dominio a traves de HTTPS.
A los efectos de este tutorial, almacenará todos los archivos en ~/eclipse-theia
. Cree el directorio ejecutando el siguiente comando:
- mkdir ~/eclipse-theia
Diríjase a este:
- 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
Añada 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í, 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.
Los volúmenes son directorios que se encuentran en su servidor, a los que el servicio definido tendrá acceso total y que más adelante usará para configurar la autenticación de usuarios. Para lograr eso, utilizará el primer volumen de la lista, que asigna el directorio local /etc/nginx/htpasswd
al mismo en el contenedor. En esa carpeta, nginx-proxy
prevé que encontrará un archivo que tendrá un nombre exactamente igual al del dominio de destino y contendrá las credenciales de inicio de sesión para la autenticación de usuarios en el formato htpasswd
(username:hashed_password
).
Para el complemento, se da un nombre a la imagen de Docker y se permite el acceso al socket de Docker definiendo un volumen. Luego, se especifica que en el complemento se debe heredar el acceso a los volúmenes definidos para nginx-proxy
. Para ambos servicios se fijó restart
en always
, lo cual ordena a Docker reiniciar los contenedores en caso de que se produzca alguna falla o se reinicie el sistema.
Guarde y cierre el archivo.
Implemente la configuración ejecutando lo siguiente:
- docker-compose -f nginx-proxy-compose.yaml up -d
Aquí pasará el nombre del archivo nginx-proxy-compose.yaml
al parámetro -f
del comando docker-compose
, que especifica el archivo que se ejecutará. Luego, pasará el verbo up
que le indica ejecutar los contenedores. El indicador -d
habilita el modo separado, lo cual significa que Docker Compose ejecutará los contenedores en segundo plano.
El resultado final tendrá el siguiente aspecto:
OutputCreating 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
Con esto, habrá implementado nginx-proxy
y su complemento de Let´s Encrypt usando Docker Compose. Ahora, continuará con la configuración de Eclipse Theia en su dominio y lo protegerá.
A lo largo de esta sección, creará un archivo que contenga todas las combinaciones de inicio de sesión permitidas que un usuario deberá ingresar. Luego, implementará Eclipse Theia en su servidor usando Docker Compose y lo expondrá en su dominio protegido usando nginx-proxy
.
Como se explicó en el paso anterior, 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. El directorio local que se asigna al virtual no necesita ser el mismo, como se indicó en la configuración de nginx-proxy
.
Para crear combinaciones de inicio de sesión, primero deberá instalar htpasswd
ejecutando el siguiente comando:
- 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 que almacenará los inicios de sesión de su dominio:
- sudo touch /etc/nginx/htpasswd/theia.your_domain
Recuerde sustituir theia.your_domain
por su dominio de Eclipse Theia.
Para añadir una combinación de nombre de usuario y contraseña, ejecute el siguiente comando:
- sudo htpasswd /etc/nginx/htpasswd/theia.your_domain username
Sustituya username
por el nombre de usuario que prefiera añadir. Se le solicitará una contraseña dos veces. Una vez que la proporcione, htpasswd
agregará el par de nombre de usuario y contraseña con hash al final del archivo. Puede repetir este comando para todos los inicios de sesión que desee añadir.
Ahora, creará una configuración para implementar Eclipse Theia. Lo almacenará en un archivo llamado eclipse-theia-compose.yaml
. Créelo usando su editor de texto:
- nano eclipse-theia-compose.yaml
Añada 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, se define un único servicio llamado eclipse-theia
con restart
fijado en always
y theiaide/theia:next com
o imagen del contenedor. También se fija init
en true
para indicar que en Docker se utilice init
como el principal administrador de procesos al ejecutar Eclipse Theia dentro del contenedor.
Luego, se especifican dos variables de entorno en la sección environment
: VIRTUAL_HOST
y LETSENCRYPT_HOST
. El primero se pasa a nginx-proxy
e indica el dominio en el cual se debe exponer el contenedor, mientras que este último se utiliza a través de su complemento de Let´s Encrypt y especifica el dominio para el cual se solicitarán los certificados TLS. A menos que especifique un comodín como valor para VIRTUAL_HOST
, deben ser los mismos.
Recuerde sustituir theia.your_domain
por el dominio que desee, y luego 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
Luego, en su navegador, diríjase al dominio que utiliza para Eclipse Theia. Su navegador le mostrará un mensaje que le solicitará iniciar sesión. Después de proporcionar las credenciales correctas, ingresará en Eclipse Theia e inmediatamente verá la GUI de su editor. En la barra de direcciones, visualizará un candado que indica que la conexión es segura. Si no lo ve inmediatamente, espere unos minutos para el aprovisionamiento de los certificados TLS y luego vuelva a cargar la página.
Ahora que puede acceder de forma segura a la IDE en la nube, comenzará a usar el editor en el siguiente paso.
En esta sección, conocerá algunas de las características de la interfaz de Eclipse Theia.
Del lado izquierdo del IDE, hay una fila vertical con cuatro botones que abren las funciones utilizadas con mayor frecuencia en el panel lateral.
Esta barra es personalizable, para que pueda cambiar el orden de estas vistas o eliminarlas de ella. De forma predeterminada, la primera vista abre el panel de Explorer que permite explorar la estructura del proyecto con forma de árbol. Aquí, puede administrar sus carpetas y archivos. Esto incluye crear, eliminar, mover y modificar nombres según sea necesario.
Después de crear un nuevo archivo a través del menú File, verá un archivo vacío abierto en una nueva pestaña. Una vez que lo guarde, podrá ver el nombre del archivo en el panel lateral de Explorer. Para crear carpetas, haga clic en la barra lateral de Explorer y luego en** New Folder**. Puede expandir una carpeta haciendo clic en su nombre, y también arrastrando archivos y carpetas y soltándolos en partes superiores de la jerarquía para trasladarlas a una nueva ubicación.
Las siguientes dos opciones proporcionan acceso a la funcionalidad de búsqueda y reemplazo. La que sigue presenta una vista de los sistemas de control de fuentes que puede estar utilizando, como Git.
La vista final es la opción de depuración, que ofrece todas las acciones comunes para realizar depuraciones en el panel. Puede guardar las configuraciones de depuración en el archivo launch.json
.
La parte central de la GUI es su editor, que usted puede separar por pestañas para editar su código. Puede cambiar la vista de edición a un sistema de cuadrícula o a archivos en paralelo. Al igual que en todos los IDE modernos, en Eclipse Theia se admite el resalte de sintaxis para su código.
Puede obtener acceso a un terminal presionando CTRL+SHIFT+ `
o seleccionando Terminal en el menú superior y luego New Terminal. La terminal se abrirá en un panel inferior y su directorio de trabajo fijará en el espacio de trabajo del proyecto, que contiene los archivos y las carpetas que se muestran en el panel lateral de Explorer.
Pudo ver una descripción general de alto nivel de la interfaz de Eclipse Theia y revisó algunas de las características más utilizadas.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.