O Eclipse Theia é um IDE em nuvem extensível que executa em um servidor remoto, podendo ser acessado a partir de um navegador Web. Visualmente, ele foi projetado para parecer e se comportar de maneira similar ao Microsoft Visual Studio Code. O que separa o Eclipse Theia de outros softwares de IDE em nuvem é a sua extensibilidade; ele pode ser modificado com extensões personalizadas, o que permite que você crie um IDE em nuvem adequado às suas necessidades.
Neste tutorial, você implantará o Eclipse Theia para seu servidor Ubuntu 18.04, usando o Docker Compose. Você irá expô-lo em seu domínio usando o nginx-proxy e o protegerá com um certificado TLS do Let’s Encrypt, o qual você irá provisionar com um add-on. Para obter uma versão mais detalhada deste tutorial, consulte o artigo sobre Como configurar a plataforma de IDE em nuvem Eclipse Theia no Ubuntu 18.04.
theia.your-domain
durante todo o processo.theia.your_domain
apontando para o endereço IP público do seu servidor. Você pode seguir esta Introdução ao DNS da DigitalOcean para obter mais detalhes sobre como adicioná-los.Crie o diretório para armazenar todos os dados do Eclipse Theia:
- mkdir ~/eclipse-theia
Navegue até ele:
- cd ~/eclipse-theia
Crie o nginx-proxy-compose.yaml
para armazenar a configuração do Docker Compose para o nginx-proxy
:
- nano nginx-proxy-compose.yaml
Adicione as linhas a seguir:
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"
Aqui, você definirá dois serviços que o Docker Compose irá executar, o nginx-proxy
e seu companheiro Let’s Encrypt. Para o proxy, você especificará o jwilder/nginx-proxy
como a imagem, mapeando as portas HTTP e HTTPS e definindo os volumes que ficarão acessíveis para o proxy durante o tempo de execução.
Salve e feche o arquivo.
Implante a configuração:
- docker-compose -f nginx-proxy-compose.yaml up -d
O resultado final ficará parecido com este:
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
O nginx-proxy
espera que as combinações de login estejam em um arquivo que tem o mesmo nome do domínio exposto, no formato htpasswd
e armazenadas sob o diretório /etc/nginx/htpasswd
, no contêiner.
Instale o htpasswd
:
- sudo apt install apache2-utils
O pacote apache2-utils
contém o utilitário htpasswd
.
Crie o diretório /etc/nginx/htpasswd
:
- sudo mkdir -p /etc/nginx/htpasswd
Crie um arquivo para armazenar os logins do seu domínio:
- sudo touch /etc/nginx/htpasswd/theia.your-domain
Execute o comando a seguir com um nome de usuário e uma combinação de senha:
- sudo htpasswd /etc/nginx/htpasswd/theia.your-domain username
O htpasswd
adicionará o nome de usuário e a senha hash ao final do arquivo.
Crie a configuração para a implantação do Eclipse Theia:
- nano eclipse-theia-compose.yaml
Adicione as linhas a seguir:
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
Você define um serviço único chamado eclipse-theia
com o restart
configurado para always
e o theiaide/theia:next
como a imagem do contêiner. Defina também o init
para true
. Em seguida, especifique duas variáveis de ambiente na seção de environment
: VIRTUAL_HOST
e LETSENCRYPT_HOST
.
Salve e feche o arquivo.
Agora, implante o Eclipse Theia, executando:
- docker-compose -f eclipse-theia-compose.yaml up -d
O resultado final se parecerá com o seguinte:
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
Navegue para o domínio que estiver usando para o Eclipse Theia. Seu navegador mostrará um prompt pedindo que você faça login. Você entrará no Eclipse Theia e verá a GUI do seu editor. Você verá também um cadeado indicando que a conexão é segura.
Agora, você tem o Eclipse Theia, um IDE em nuvem versátil, instalado no seu servidor Ubuntu 18.04, usando o Docker Compose e o nginx-proxy
. Você o protegeu com um certificado TLS do Let’s Encrypt gratuito e configurou a instância para exigir as credenciais de login do usuário. Você pode trabalhar no seu código-fonte e nos documentos com ele, de maneira independente ou em colaboração com sua equipe. Você também pode tentar compilar sua própria versão do Eclipse Theia se precisar de recursos adicionais. Para obter mais informações sobre como fazer isso, acesse os documentos do 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!