code-server es Microsoft Visual Studio Code en ejecución en un servidor remoto, y usted puede acceder a él de forma directa desde su navegador. Esto significa que puede usar varios dispositivos con diferentes sistemas operativos y tener siempre a mano un entorno de desarrollo uniforme.
A través de este tutorial, configurará la plataforma de IDE en la nube code-server en su equipo con Ubuntu 18.04 y la expondrá en su dominio, protegida con Let´s Encrypt. Para hallar una versión más detallada de este tutorial, consulte Cómo configurar la plataforma de IDE en la nube code-server en Ubuntu 18.04.
Un servidor con Ubuntu 18.04 con al menos 2 GB de RAM, acceso root y una cuenta sudo no root. Puede configurar esto siguiendo la Guía de configuración inicial para servidores de Ubuntu 18.04.
Nginx instalado en su servidor. En los pasos 1 a 4 de Cómo instalar Nginx en Ubuntu 18.04, encontrará indicaciones para hacer esto.
Un nombre de dominio registrado por completo para alojar code-server, orientado a su servidor. En este tutorial, se utilizará code-server.your-domain
en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios que elija.
Los dos registros DNS que se indican a continuación se han configurado para su servidor. Puede utilizar esta introducción al DNS de DigitalOcean para obtener más información sobre cómo agregarlos.
your-domain
orientado a la dirección IP pública de su servidor.www.your-domain1
orientado a la dirección IP pública de su servidor.Cree el directorio para almacenar todos los datos para code-server:
- mkdir ~/code-server
Diríjase a este:
- cd ~/code-server
Visite la página de versiones de Github de code-server y seleccione la última compilación de Linux. Descárguela usando lo siguiente:
- 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
Desempaque el archivo:
- tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
Diríjase al directorio que contiene el ejecutable de code-server:
- cd code-server2.1692-vsc1.39.2-linux-x86_64
Para acceder al ejecutable de code-server en su sistema, cópielo con lo siguiente:
- sudo cp code-server /usr/local/bin
Cree una carpeta para que code-server almacene los datos del usuario:
- sudo mkdir /var/lib/code-server
Cree un servicio systemd
, code-server.service
, en el directorio /lib/systemd/system
:
- sudo nano /lib/systemd/system/code-server.service
Añada las siguientes líneas:
[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
lo vincula a localhost
.--user-data-dir /var/lib/code-server
establece su directorio de datos de usuario.--auth password
especifica que debe autenticar a los visitantes con una contraseña.Recuerde sustituir your_password
por la contraseña que elija.
Guarde y cierre el archivo.
Inicie el servicio code-server:
- sudo systemctl start code-server
Compruebe que se haya iniciado correctamente:
- sudo systemctl status code-server
Verá un resultado similar al siguiente:
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 el servicio code-server para que se inicie automáticamente después de un reinicio del servidor:
- sudo systemctl enable code-server
Ahora, configurará Nginx como un proxy inverso para code-server.
Cree code-server.conf para almacenar la configuración para exponer code-server
en su dominio:
- sudo nano /etc/nginx/sites-available/code-server.conf
Añada las siguientes líneas para configurar el bloque de su servidor con las directivas necesarias:
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;
}
}
Sustituya code-server.your_domain
por el dominio de su elección; luego guarde y cierre el archivo.
Para activar esta configuración del sitio, cree un enlace simbólico de la misma:
- sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf
Pruebe la validez de la configuración:
- sudo nginx -t
Verá el siguiente resultado:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Para que la configuración se aplique, reinicie Nginx:
- sudo systemctl restart nginx
Ahora, protegerá su dominio utilzando un certificado TLS de Let´s Encrypt.
Añada el repositorio de paquetes de Certbot a su servidor:
- sudo add-apt-repository ppa:certbot/certbot
Instale Certbot y su complemento de Nginx:
- sudo apt install python-certbot-nginx
Configure ufw
para aceptar tráfico cifrado:
- sudo ufw allow https
El resultado será lo siguiente:
OutputRule added
Rule added (v6)
Realice la carga de nuevo para que la configuración se aplique:
- sudo ufw reload
El resultado será el siguiente:
OutputFirewall reloaded
Diríjase a su dominio de code-server.
Introduzca su contraseña de code-server. Verá la interfaz expuesta en su dominio.
Para protegerla, instale un certificado TLS de Let´s Encrypt usando Certbot.
Solicite un certificado para su dominio con lo siguiente:
- sudo certbot --nginx -d code-server.your_domain
Proporcione una dirección de correo electrónico para los avisos urgentes, acepte las Condiciones de servicio de la EFF y decida si todo el tráfico HTTP se redirecciona a HTTPS.
El resultado tendrá un aspecto similar a este:
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"
...
Así, Certbot generó con éxito certificados TLS y los aplicó en la configuración de Nginx para su dominio.
Ahora dispone de code-server, un IDE en la nube versátil, instalado en su servidor de Ubuntu 18.04, expuesto en su dominio y protegido con certificados de Let´s Encrypt. Para obtener más información, consulte la documentación de Visual Studio Code sobre características adicionales e instrucciones detalladas relacionadas con otros componentes de 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!