Tutorial
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.
- Um registro do tipo A, com o
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:
[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 aolocalhost
.--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:
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:
Outputnginx: 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á:
OutputRule added
Rule added (v6)
Recarregue-o para que a configuração entre em vigor:
- sudo ufw reload
A saída mostrará:
OutputFirewall reloaded
Navegue até seu domínio do code-server
Digite sua senha do code-server. Você verá a interface exposta no seu domínio.
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:
OutputIMPORTANT 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.