// 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
Default avatar
By Savic
Developer and author at DigitalOcean.
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.


Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Savic

author

Developer and author at DigitalOcean.

Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?
Leave a comment