Visual Studio Code telah menjadi salah satu IDE paling populer untuk pengkodean. Ini telah mengintegrasikan dukungan Git dan Docker, debugger kode, pelengkapan otomatis kode, kemampuan untuk bekerja dengan file jarak jauh dan mendukung berbagai plugin.
Dengan semua yang berpindah ke cloud, memiliki akses ke IDE pilihan Anda dari mana saja sangat cocok untuk pengembangan modern. Cloud IDE memungkinkan kolaborasi waktu nyata antara pengembang, sehingga meningkatkan produktivitas. coder-server adalah aplikasi yang memungkinkan Anda menjalankan Visual Studio Code dari server jauh dan membuatnya dapat diakses melalui browser apa pun.
Tutorial ini akan mengajarkan Anda cara menginstal Visual Studio Code IDE menggunakan aplikasi code-server di server Rocky Linux 8 Anda. Anda juga akan mengeksposnya melalui domain publik bersama dengan dukungan SSL.
Prasyarat
-
Server yang menjalankan Rocky Linux dengan setidaknya 2 GB RAM dan 2 inti CPU.
-
Pengguna non-root dengan hak istimewa sudo.
-
Domain terdaftar dan diarahkan ke server.
-
Nginx terinstal di server Anda.
-
Pastikan semuanya diperbarui.
$ sudo dnf update
Langkah 1 - Konfigurasi Firewall
Langkah pertama adalah mengkonfigurasi firewall. Rocky Linux hadir dengan firewall Firewalld.
Periksa apakah firewall sedang berjalan.
$ sudo firewall-cmd --state
Output berikut membuktikan bahwa firewall sedang berjalan.
running
Periksa layanan/port yang diizinkan saat ini.
$ sudo firewall-cmd --permanent --list-services
Ini akan menunjukkan output berikut.
dhcpv6-client mdns ssh
Buka port 8080 untuk server kode.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Izinkan port HTTP dan HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Periksa kembali status firewall.
$ sudo firewall-cmd --permanent --list-all
Anda akan melihat keluaran serupa.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 8080/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Muat ulang firewall untuk mengaktifkan perubahan.
$ sudo systemctl reload firewalld
Langkah 2 - Instal code-server
code-server dilengkapi dengan skrip instalasi yang dapat mendeteksi versi Linux dan menginstal biner yang sesuai untuk server Anda. Anda dapat menguji skrip penginstalan untuk memeriksa apakah skrip tersebut akan berfungsi atau tidak di server Anda.
Jalankan perintah berikut untuk menjalankan instalasi kering.
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run Rocky Linux 8.4 (Green Obsidian) Installing v3.12.0 of the amd64 rpm package from GitHub. + mkdir -p ~/.cache/code-server + curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm + mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm + sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm rpm package has been installed. To have systemd start code-server now and restart on boot: sudo systemctl enable --now [email protected]$USER Or, if you don't want/need a background service you can run: code-server
Jalankan setup setelah dry run berhasil.
$ curl -fsSL https://code-server.dev/install.sh | sh
Skrip instalasi mungkin meminta kata sandi sudo Anda.
Aktifkan layanan server kode.
$ sudo systemctl enable [email protected]$USER
Jika Anda ingin memperbarui instance code-server Anda, ulangi proses instalasi. code-server akan menyimpan file dan pengaturan Anda.
Langkah 3 - Konfigurasi server kode
code-server menyimpan file konfigurasinya di ~/.config/code-server/config.yaml
. Buka untuk diedit.
$ sudo nano ~/.config/code-server/config.yaml
Berikut adalah pengaturan default yang disetel selama instalasi.
bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false
File konfigurasi default memungkinkan perilaku berikut:
- Dengarkan pada port IP loopback 8080
- Mengaktifkan otorisasi sandi dengan sandi yang dibuat secara acak
- Tidak menggunakan TLS
Anda dapat mengubah kata sandi dengan mengubah nilainya dalam file.
Jika Anda ingin menyimpan kata sandi versi hash, Anda harus menginstal npm terlebih dahulu. Setelah terinstal, jalankan perintah berikut untuk menyetel sandi hash.
$ echo -n "thisismypassword" | npx argon2-cli -e $argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
Anda akan mendapatkan nilai hash di terminal Anda. Salin dan tempel ke file konfigurasi.
auth: password hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
Pastikan untuk membungkus kata sandi hash dengan tanda kutip. Jika Anda ingin menonaktifkan Telemetri, tambahkan baris berikut ke dalam file.
disable-telemetry: false
Ada opsi lain yang dapat Anda tentukan dalam file. Untuk memeriksa semua opsi lain yang dapat Anda tambahkan, gunakan perintah berikut untuk membuat daftar semua flag.
$ code-server --help
Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta setelah selesai.
Langkah 4 - Instal SSL
Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu mengunduh alat Certbot. Tapi pertama-tama, kita perlu menginstal repositori EPEL.
Jalankan perintah berikut untuk menginstal Certbot.
$ sudo dnf install epel-release $ sudo dnf install certbot
Buat sertifikat SSL.
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [email protected]
Perintah di atas akan mengunduh sertifikat ke /etc/letsencrypt/live/code-server.example.com
direktori di server Anda. Pastikan untuk mengganti [email protected]
dengan email Anda yang sebenarnya.
Buat grup Diffie-Hellman sertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Buat direktori webroot tantangan untuk pembaruan otomatis Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Buat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbarui jika diperlukan. Untuk itu, buat dulu file /etc/cron.daily/certbot-renew
dan buka untuk diedit.
$ sudo nano /etc/cron.daily/certbot-renew
Tempelkan kode berikut.
#!/bin/sh certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Ubah izin pada file tugas agar dapat dieksekusi.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Langkah 5 - Instal dan Konfigurasi Nginx
Buat dan buka /etc/yum.repos.d/nginx.repo
file untuk membuat repositori Nginx resmi.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Instal server Nginx.
$ sudo dnf install nginx
Aktifkan layanan Nginx.
$ sudo systemctl enable nginx
Buat file konfigurasi untuk server kode di /etc/nginx/conf.d
direktori.
$ sudo nano /etc/nginx/conf.d/code-server.conf
Tempelkan kode berikut di dalamnya.
server { listen 80; listen [::]:80; server_name code-server.example.com; return 301 https://$host$request_uri; } server { server_name code-server.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/code-server.access.log; error_log /var/log/nginx/code-server.error.log; ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } }
Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Validasi file konfigurasi.
$ sudo nginx -t
Jika Anda mendapatkan kesalahan berikut, Anda perlu mengedit file /etc/nginx/nginx.conf
untuk menambah/menyesuaikan ukuran variabel server_names_hash_bucket_size
.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Buka file /etc/nginx/nginx.conf
untuk diedit.
$ sudo nano /etc/nginx/nginx.conf
Tambahkan baris berikut sebelum baris include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta. Validasi Nginx lagi.
Mulai server Nginx.
$ sudo systemctl start nginx
Langkah 6 - Gunakan server-kode
Luncurkan domain https://code-server.example.com
di browser Anda, dan masukkan kata sandi untuk mengotentikasi instalasi kode-server Anda. Masukkan kata sandi dari file konfigurasi.
code-server akan meminta Pengaturan Kode VS saat pertama kali Anda meluncurkannya.
Pilih skema warna, Buka bagian yang tersisa dan klik Tandai Selesai setelah selesai.
Kesimpulan
Anda sekarang memiliki instance Visual Studio Code yang terinstal di server Rocky Linux Anda. Ada peringatan tertentu dengan ini dibandingkan dengan Kode VS resmi. Ekstensi yang tersedia bukanlah ekstensi resmi tetapi ditawarkan dari repositori tidak resmi server kode. Anda dapat berkonsultasi dengan dokumen resmi mereka jika Anda ingin menginstal ekstensi resmi. Ini akan membutuhkan beberapa usaha. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.