Tutorial

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

Published on February 20, 2020
Português
Como configurar a plataforma de IDE em nuvem code-server no Ubuntu 18.04 [Guia de início rápido]

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:

  1. mkdir ~/code-server

Navegue até ele:

  1. 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:

  1. 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:

  1. 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:

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

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

  1. sudo cp code-server /usr/local/bin

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

  1. sudo mkdir /var/lib/code-server

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

  1. 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:

  1. sudo systemctl start code-server

Verifique se ele foi iniciado corretamente:

  1. 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:

  1. 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:

  1. 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:

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

Teste a validade da configuração:

  1. 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:

  1. 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:

  1. sudo add-apt-repository ppa:certbot/certbot

Instale o Certbot e seu plug-in do Nginx:

  1. sudo apt install python-certbot-nginx

Configure o ufw para aceitar o tráfego criptografado:

  1. sudo ufw allow https

O resultado será:

Output
Rule added Rule added (v6)

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

  1. 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:

  1. 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.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar
Savic

author



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel