Tutorial

Como configurar a plataforma de IDE em nuvem code-server no Ubuntu 18.04 [Guia de início rápido]

NginxLet's EncryptQuickstartUbuntu 18.04VS Code

Introdução

O code-server é o Visual Studio Code da Microsoft em execução em um servidor remoto e acessível diretamente do seu navegador. Isso significa que você pode usar vários dispositivos, executando sistemas operacionais diferentes , tendo sempre um ambiente de desenvolvimento consistente à mão.

Neste tutorial, você irá configurar a plataforma de IDE (Ambiente de Desenvolvimento Integrado) em nuvem code-server em sua máquina com Ubuntu 18.04 e expô-la no seu domínio, protegida com o certificado Let’s Encrypt. Para obter uma versão mais detalhada deste tutorial, consulte o artigo sobre Como configurar a plataforma de IDE em nuvem code-server no Ubuntu 18.04.

Pré-requisitos

  • Um servidor executando o Ubuntu 18.04, com pelo menos 2 GB de memória RAM, acesso raiz e uma conta sudo não raiz. É possível configurar esses detalhes, seguindo o Guia de configuração inicial de servidor para Ubuntu 18.04.

  • O Nginx instalado no seu servidor. Para obter um guia de como fazer isso, complete os Passos 1 a 4 do artigo sobre Como instalar o Nginx no Ubuntu 18.04.

  • Um nome de domínio totalmente registrado para hospedar o code-server, apontado para o seu servidor. Neste tutorial usaremos o code-server.your-domain durante todo o processo. Você pode comprar um nome de domínio em Namecheap, obter um gratuitamente em Freenom ou usar o registrador de domínios de sua escolha.

  • Ambos os registros de DNS a seguir serão configurados para o seu servidor. Você pode seguir esta introdução para DNS DigitalOcean para mais detalhes sobre como adicioná-los.

    • Um registro do tipo A, com o your-domain apontando para o endereço IP público do seu servidor.
    • Um registro do tipo A, com o www.your-domain apontando para o endereço IP público do seu servidor.

Passo 1 — Instalando o code-server

Crie o diretório para armazenar todos os dados para o code-server:

  • mkdir ~/code-server

Navegue até ele:

  • cd ~/code-server

Visite a página de versões do Github do code-server e escolha a última compilação do Linux. Baixe a versão, usando o seguinte:

  • wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

Descompacte o arquivo:

  • tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz

Navegue até o diretório que contém o executável do code-server:

  • cd code-server2.1692-vsc1.39.2-linux-x86_64

Para acessar o executável do code-server pelo seu sistema, copie-o com:

  • sudo cp code-server /usr/local/bin

Crie uma pasta para o code-server armazenar os dados do usuário:

  • sudo mkdir /var/lib/code-server

Crie um serviço systemd, code-server.service, no diretório /lib/systemd/system:

  • sudo nano /lib/systemd/system/code-server.service

Adicione as linhas seguintes:

/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
Restart=always

[Install]
WantedBy=multi-user.target
  • --host 127.0.0.1 vincula-o ao localhost.
  • --user-data-dir /var/lib/code-server define seu diretório de dados do usuário.
  • --auth password especifica que ele deve autenticar visitantes com uma senha.

Lembre-se de substituir o your_password pela sua senha desejada.

Salve e feche o arquivo.

Inicie o serviço code-server:

  • sudo systemctl start code-server

Verifique se ele foi iniciado corretamente:

  • sudo systemctl status code-server

Você verá um resultado parecido com este:

Output
● code-server.service - code-server Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago Main PID: 5216 (code-server) Tasks: 23 (limit: 2362) CGroup: /system.slice/code-server.service ├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password ...

Habilite o serviço code-server para iniciar automaticamente após a reinicialização de um servidor:

  • sudo systemctl enable code-server

Passo 2 — Expondo o code-server

Agora, você irá configurar o Nginx como um proxy reverso para o code-server.

Crie o code-server.conf para armazenar a configuração para expor o code-server no seu domínio:

  • sudo nano /etc/nginx/sites-available/code-server.conf

Adicione as linhas a seguir para instalar o seu bloco de servidor com as diretivas necessárias:

/etc/nginx/sites-available/code-server.conf
server {
    listen 80;
    listen [::]:80;

    server_name code-server.your_domain;

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection upgrade;
        proxy_set_header Accept-Encoding gzip;
    }
}

Substitua code-server.your_domain pelo seu domínio desejado, na sequência, salve e feche o arquivo.

Para tornar a configuração deste site ativa, crie um symlink dele:

  • sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf

Teste a validade da configuração:

  • sudo nginx -t

Você verá o seguinte resultado:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Para que a configuração entre em vigor, reinicie o Nginx:

  • sudo systemctl restart nginx

Passo 3 — Protegendo seu domínio

Agora, você irá proteger seu domínio usando um certificado TLS do Let’s Encrypt.

Adicione o repositório de pacotes Certbot ao seu servidor:

  • sudo add-apt-repository ppa:certbot/certbot

Instale o Certbot e seu plug-in do Nginx:

  • sudo apt install python-certbot-nginx

Configure o ufw para aceitar o tráfego criptografado:

  • sudo ufw allow https

O resultado será:

Output
Rule added Rule added (v6)

Recarregue-o para que a configuração entre em vigor:

  • sudo ufw reload

A saída mostrará:

Output
Firewall reloaded

Navegue até seu domínio do code-server

code-server login prompt

Digite sua senha do code-server. Você verá a interface exposta no seu domínio.

code-server GUI

Para protegê-lo, instale um certificado TLS do Let’s Encrypt usando o Certbot.

Peça um certificado para seu domínio com:

  • sudo certbot --nginx -d code-server.your_domain

Forneça um endereço de e-mail para avisos urgentes, aceite os Termos de serviço do EFF e decida se quer redirecionar todo o tráfego HTTP para o HTTPS.

A saída será semelhante a esta:

Output
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your_domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" ...

O Certbot gerou os certificados TLS com êxito e os aplicou à configuração do Nginx para seu domínio.

Conclusão

Agora, você tem o code-server, um IDE em nuvem versátil, instalado no seu servidor Ubuntu 18.04, exposto no seu domínio e protegido com os certificados do Let’s Encrypt. Para obter mais informações, consulte a documentação do Visual Studio Code para obter recursos adicionais e instruções detalhadas sobre outros componentes do code-server.

0 Comments

Creative Commons License