Visual Studio Code – Server IDE installeren op Ubuntu 18.04 LTS

Code-server is een Visual Studio (VS) code die op afstand op de server kan draaien en die toegankelijk is via een web browser. Hiermee kun je een consistente ontwikkelomgeving maken en hebben, die altijd en overal toegankelijk is.

In deze handleiding laten we je zien hoe je de Code-server met Nginx als reverse proxy en SSL Letsencrypt installeert op de nieuwste Ubuntu 18.04 Server.

Vereisten

Voor deze gids installeren we de Code-server op een Ubuntu 18.04 server met 3GB RAM, 25GB vrije schijfruimte, en 2CPUs.

Wat we zullen doen:

  • Gebruiker toevoegen en Code-server Binary downloaden
  • Stel Code-server in als een Systemd Service
  • Genereer SSL Letsencrypt
  • Stel Nginx in als een Reverse Proxy voor Code-server
  • Testen van

Stap 1 – Gebruiker toevoegen en Code-server Binary downloaden

Eerst zullen we een nieuwe gebruiker toevoegen en het code-server binaire bestand van GitHub downloaden.

Voeg een nieuwe gebruiker ‘code’ toe met het onderstaande commando.

useradd -m -s /bin/bash code
passwd code

Log nu in als ‘code’ gebruiker en download het code-server binaire bestand.

su - code
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

Download VS Code Server

Pak de code-server uit en hernoem de directory als ‘bin’.

tar -xf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
mv code-server2.1692-vsc1.39.2-linux-x86_64/ bin/

Maak nu van de code-server een uitvoerbaar binair bestand.

chmod +x ~/bin/code-server

En maak een nieuwe gegevensmap om de gebruikersgegevens in op te slaan.

mkdir -p ~/data

Nu heb je een nieuwe gebruiker ‘code’ aangemaakt en de code-server binary gedownload naar de home directory van gebruiker ‘code’.

Download en installeer Code Server

Stap 2 – Stel code-server in als een Systemd dienst

In deze stap stellen we de code-server in om als een systeemdienst te draaien.

De code-server dienst zal draaien onder de gebruiker ‘code’, met standaard poort ‘8080’ en ingeschakelde wachtwoord authenticatie.

Ga naar de ‘/etc/systemd/system’ directory en maak een nieuw service bestand ‘code-server.service’ met vim editor.

cd /etc/systemd/system/
vim code-server.service

Verander de optie ‘Environment’ voor een wachtwoord met je eigen en plak de configuratie erin.

[Unit]
Description=code-server
After=nginx.service

[Service]
User=code
WorkingDirectory=/home/code
Environment=PASSWORD=hakasevscodeserv
ExecStart=/home/code/bin/code-server --host 127.0.0.1 --user-data-dir /home/code/data --auth password
Restart=always

[Install]
WantedBy=multi-user.target

Sla op en sluit.

Herlaad nu de systeembeheerder.

systemctl daemon-reload

Start daarna de code-server service en voeg hem toe aan het systeem opstarten met het volgende commando.

systemctl start code-server
systemctl enable code-server

Stel de dienst code-server systemd in

Controleer nu de code-server service.

netstat -plntu
systemctl status code-server

En de code-server service is up and running op standaard poort ‘8080’.

Start Code-Server

Als resultaat heb je de code-server ingesteld om als systeemdienst te draaien.

Stap 3 – Genereer SSL Letsencrypt

In deze stap genereren we de SSL letsencrypt met het certbot gereedschap om de code-server te beveiligen.

Installeer het certbot gereedschap met het onderstaande apt commando.

sudo apt install certbot -y

Als de installatie voltooid is, genereer je de SSL letsencrypt met het onderstaande certbot commando.

certbot certonly --standalone --agree-tos -m [email protected] -d vscode.hakase-labs.io

Als dat voltooid is, staan je certificaten in de map ‘/etc/letsencrypt/live/vscode.hakase-labs.io/’.

ls -lah /etc/letsencrypt/live/vscode.hakase-labs.io/

Nu heb je de SSL Letsencrypt voor het beveiligen van de code-server installatie gegenereerd met het certbot gereedschap.

Stap 4 – Stel Nginx in als omgekeerde proxy

In deze stap installeren we de Nginx webserver en stellen die in als een omgekeerde proxy voor de code-server met SSL erop ingeschakeld.

Installeer het Nginx pakket met het onderstaande apt commando.

sudo apt install nginx -y

Als de installatie voltooid is, ga dan naar de ‘/etc/nginx/sites-available’ directory en maak een nieuwe virtuele host configuratie ‘code-server’.

cd /etc/nginx/sites-available/
vim code-server

Verander nu de domeinnaam en het pad van SSL met je eigen en plak de configuratie erin.

server {
listen 80;
server_name vscode.hakase-labs.io;
# enforce https
return 301 https://$server_name:443$request_uri;
}

server {
listen 443 ssl http2;
server_name vscode.hakase-labs.io;

ssl_certificate /etc/letsencrypt/live/vscode.hakase-labs.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vscode.hakase-labs.io/privkey.pem;

location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}

Bewaar en sluit.

Activeer nu de ‘code-server’ virtuele host, test de nginx configuratie en controleer of er geen fout optreedt.

ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/
nginx -t

Bewerk Nginx Configuratie

Herstart daarna de nginx service en voeg hem toe aan het systeem opstarten.

systemctl restart nginx
systemctl enable nginx

Nu is de nginx service up and running als een reverse proxy voor de code-server. Controleer het met het onderstaande commando.

netstat -plntu
systemctl status nginx

En je krijgt het resultaat als hieronder.

Start Nginx

De Nginx dienst is up and running op de Ubuntu 18.04 server met de HTTP en HTTPS poorten erop ingeschakeld.

Stap 5 – Testen

Open je web browser en typ de URL van je code-server installatie.

https://vscode.hakase-labs.io/

Log in met je wachtwoord dat je bij het code-server service bestand hebt ingesteld.

Inloggen op VS Code

Als het wachtwoord juist is, krijg je de VS Code editor op je webbrowser, zoals hieronder.

Visual Studio Code

Als resultaat heb je de code-server geïnstalleerd op Ubuntu 18.04 server met Nginx als omgekeerde proxy en de code-server installatie beveiligd met SSL Letsencrypt.

Referentie