Code-server adalah Visual Studio (VS) Code yang dapat dijalankan dari jarak jauh di server dan yang dapat diakses melalui web browser. Secara garis besar, berbeda dengan Visual Studio Code yang hanya berjalan di komputer local, Visual Studio Code – server dapat di akses dari mana saja dengan fungsi yang sama dengan Visual Studio Code di komputer lokal.

Sebagai seorang developer, tentunya Ini memungkinkan Anda untuk membuat dan memiliki lingkungan pengembangan yang konsisten yang dapat diakses kapan saja dan di mana saja, bahkan jika komputer yang sedang Anda kebetulan dengan spek minim atau tidak terinstall Visual Studio Code.

Dalam tutorial ini, kami akan membahas bagaimana menginstal dan konfigurasi Code-server dengan Nginx sebagai reverse proxy dan SSL Let’s encrypt pada Ubuntu 18.04 Server terbaru.

Prasyarat

Untuk dapat menginstall Visual studio code-server di mesin Anda, harap perhatikan persyaratan minimum berikut :

  • Sistem dengan 64-bit host.
  • Setidaknya 1GB RAM.
  • 2 cores atau lebih CPU (1 core bisa namun tidak optimal).
  • Koneksi aman HTTPS atau localhost (Wajib untuk dukungan clipboard).
  • Untuk Sistem Linux: GLIBC 2.17 atau lebih baru dan  GLIBCXX 3.4.15 atau lyang ebih baru .
  • Dalam tutorial ini, kami menggunakan nama domain example.com sebagai contoh.

Apa yang akan kita lakukan:

  • Membuat User baru dan download Code-server Binary
  • Setup Code-server sebagai Systemd Service
  • Membuat/menghasilkan SSL Letsencrypt
  • Atur Nginx sebagai Reverse Proxy untuk Code-server
  • Testing konfigurasi

Langkah 1 – Tambahkan Pengguna dan Unduh Code-Server Binary

Pertama, kita akan menambahkan pengguna baru dan mengunduh file biner code-server dari GitHub.

Tambahkan pengguna baru dengan nama ‘code‘ menggunakan perintah di bawah ini.

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

Sekarang masuk sebagai user ‘code’ dan download file binary dari code-server.

su - code
wget https://github.com/cdr/code-server/releases/download/3.0.2/code-server-3.0.2-linux-x86_64.tar.gz

Pada saat penulisan artikel ini, versi terbaru adalah versi 3.0.2, Periksa halaman release code-server di github untuk melihat apakah ada versi terbaru yang tersedia.

Ekstrak code-server dan ganti nama direktori menjadi ‘bin‘ dengan perintah mv.

tar -xf code-server-3.0.2-linux-x86_64.tar.gz
mv code-server-3.0.2-linux-x86_64/ bin/

Sekarang jadikan code-server sebagai file binary yang dapat dieksekusi.

chmod +x ~/bin/code-server

Dan buat direktori data baru untuk menyimpan data pengguna.

mkdir -p ~/data

Sekarang Anda telah membuat user baru dengan username ‘code’ dan mengunduh binary code-server ke direktori home user ‘code’.

Langkah 2 – Setup Code-Server sebagai Layanan Systemd

Pada langkah ini, kita akan mengatur code-server untuk dijalankan sebagai layanan sistem. Layanan code-server akan berjalan di bawah user ‘code’, dengan port default ‘8080’ dan otentikasi kata sandi.

Pergi ke direktori ‘/etc/systemd/system’ dan buat file layanan baru ‘code-server.service’ menggunakan vim editor.

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

Ubah opsi ‘Environment’ untuk kata sandi dengan kata sandi Anda dan paste konfigurasi ke dalamnya.

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

[Service]
User=code
WorkingDirectory=/home/code
Environment=PASSWORD=g4nt!_d3n94n_p4$$w0rd
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

Simpan dan tutup.

Sekarang reload sistem daemon untuk menerapkan perubahan.

systemctl daemon-reload

Setelah itu, mulai layanan code-server dan tambahkan ke boot sistem menggunakan perintah berikut.

systemctl start code-server
systemctl enable code-server

Sekarang Periksa layanan code-server.

netstat -plntu
systemctl status code-server

Dan layanan code-server aktif dan berjalan pada port default ‘8080’. Pada langkah ini Anda telah menyiapkan code-server  untuk dijalankan sebagai layanan sistem.

Langkah 3 – Hasilkan SSL Let’s encrypt

Pada langkah ini, kita akan membuat SSL letsencrypt menggunakan alat certbot untuk mengamankan code-server. Instal certbot tool menggunakan perintah apt di bawah ini.

sudo apt install certbot -y

Setelah instalasi selesai, buat SSL let’s encrypt menggunakan perintah certbot di bawah ini.

certbot certonly --standalone --agree-tos -m [email protected] -d example.com

Setelah selesai, sertifikat Anda akan berada di direktori ‘/etc/letsencrypt/live/example.com/’.

ls -la /etc/letsencrypt/live/example.com/

Sekarang Anda telah membuat SSL Let’s encrypt untuk mengamankan instalasi code-server menggunakan certbot tool.

Langkah 4 – Atur Nginx sebagai Reverse Proxy

Pada langkah ini, kita akan menginstal server web Nginx dan mengaturnya sebagai reverse proxy  untuk code-server dengan SSL diaktifkan .

Instal paket Nginx menggunakan perintah apt di bawah ini.

sudo apt install nginx -y

Setelah instalasi selesai, buka direktori ‘/etc/nginx/sites-available’ dan buat konfigurasi virtual host baru dengan nama ‘code-server’.

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

Sekarang ubah nama domain dan path SSL dengan milik Anda dan paste konfigurasi ke dalamnya.

server {
 listen 80;
 server_name vscode.example.com;
 # enforce https
 return 301 https://$server_name:443$request_uri;
}

server {
 listen 443 ssl http2;
 server_name example.com;

 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/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;
 }
}

Simpan dan tutup.

Sekarang aktifkan virtual host ‘code-server’ dengan membuat symlink dari sites-available ke sites-enabled, dan uji konfigurasi nginx dan pastikan tidak ada error.

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

Setelah itu, restart layanan nginx dan tambahkan ke boot sistem.

systemctl restart nginx
systemctl enable nginx

Sekarang layanan Nginx aktif dan berjalan sebagai reverse proxy untuk code-server. Periksa menggunakan perintah di bawah ini.

systemctl status nginx

pada poin ini, Nginx service aktif dan berjalan di server Ubuntu 18.04 dengan port HTTP dan HTTPS diaktifkan.

Langkah 5 – Pengujian

Buka browser web Anda dan ketik URL instalasi code-server Anda. Masuk dengan kata sandi Anda yang telah Anda konfigurasi di file layanan code-server.

Login VS Code - server

Setelah kata sandi benar, Anda akan mendapatkan editor VS Code di browser web Anda seperti di bawah ini.

Antarmuka Visual Studio Code - Server

Pada poin ini, Anda telah menginstal code-server  pada server Ubuntu 18.04 dengan Nginx sebagai reverse proxy dan mengamankan instalasi code-server dengan SSL Let’s encrypt.