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.
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.
your-domain
apontando para o endereço IP público do seu servidor.www.your-domain
apontando para o endereço IP público do seu servidor.Crie o diretório para armazenar todos os dados para o code-server:
Navegue até ele:
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:
Descompacte o arquivo:
Navegue até o diretório que contém o executável do code-server:
Para acessar o executável do code-server pelo seu sistema, copie-o com:
Crie uma pasta para o code-server armazenar os dados do usuário:
Crie um serviço systemd
, code-server.service
, no diretório /lib/systemd/system
:
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 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:
Verifique se ele foi iniciado corretamente:
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:
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:
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:
Teste a validade da configuração:
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:
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:
Instale o Certbot e seu plug-in do Nginx:
Configure o ufw
para aceitar o tráfego criptografado:
O resultado será:
OutputRule added
Rule added (v6)
Recarregue-o para que a configuração entre em vigor:
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:
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.
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.
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!