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.
theia.your-domain
en todo momento.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.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:
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:
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
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:
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_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:
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.
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!