Tutorial

Como configurar a plataforma IDE na nuvem do Eclipse Theia no Ubuntu 18.04 [Início rápido]

Quickstart

Introdução

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.

Pré-requisitos

Passo 1 — Implantando o nginx-proxy com o Let’s Encrypt

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:

~/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"

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:

Output
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

Passo 2 — Implantando o Eclipse Theia em Docker

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:

~/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

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.

Interface Gráfica do Usuário (GUI) do Eclipse Theia

Conclusão

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.

0 Comments

Creative Commons License