Aplikasi Node JS dapat di deploy pada berbagai jenis sistem operasi salah satunnya adalah linux ubuntu server. Ulasan ini akan membahas proses deployment sumber kode (source code) Node JS yang tersimpan pada repository private github.
Proses deployment ini tidak disarankan untuk project berskala besar atau mungkin lebih cocok untuk project personal. Untuk project yang kompleks membutuhkan pipeline CI/CD yang lebih lengkap.
Environment yang digunakan adalah linux ubuntu server versi 18.04 LTS. Sebelum dapat menjalankan secara utuh proses deployment node js yang sumber datannya tersimpan pada github maka pastikan git telah terinstall pada server serta telah terkonfigurasi dengan baik. Jika git belum terkonfigurasi dapat mengunjungi tautan dibawah ini untuk melakukan installasi git.
Cara Deploy dan Hosting Aplikasi Node js dari Github pada Linux Ubuntu Server
langkah 1 – membuat repository private pada github
buat akun github (jika belum memiliki akun github), kemudian buatlah repository private serta pastikan sumber kode telah tersedia pada repository tersebut.
https://github.com/nama_user/nama_repository
langkah 2 – buat public key pada linux ubuntu server
untuk dapat melakukan cloning repository menggunakan ssh, langkah pertama yang perlu dilakukan adalah membuat public key pada server.
ssh-keygen -t rsa -C emailanda@email.com cat ~/.ssh/id_rsa.pub
gunakan perintah cat untuk melihat public key yang berhasil dibuat.
sangat disarankan untuk menggunakan passphrase saat membuat ssh key untuk alasan keamanan.
Public key ini nantinnya akan kita gunakan/bind di akun github. Pastikan membuat file id_rsa.pub pada folder ini : ~./ssh
pastikan juga ada pair id_rsa dan id_rsa.pub
kemudian pastikan juga bahwa ssh key yang telah dibuat telah masuk pada authorized_keys file. Jika ssh key belum terdapat pada file tersebut tambahkanlah pada baris baru.
nano authorized_keys
langkah 3 – masukan public key ke github
menuju ke repository github yang menyimpan sumber kode untuk dilakukan deployment kemudian masukanlah public key yang dibuat pada langkah ketiga dan centang permission untuk write (allow write access)
ingat, public key yang valid atau benar selalu diawali dengan ssh-rsa. jika key tidak diawali dengan kalimat tersebut maka public key yang dibuat salah.
langkah 4 – clone repository dari github dengan ssh
gunakan perintah dibawah untuk melakukan cloning repository pada github
sudo git clone git@github.user/project.git
jika kesulitan mendapatkan perintah diatas cukup buka halaman repository dan klik tombol clone. kemudian pilih ssh. maka akan tampak jelas lokasi url git project.
tunggu hingga proses cloning selesai. jika ssh key yang dibuat diberikan passphrase (password) maka masukanlah password tersebut.
proses kloning telah selesai.
langkah 5 – install aplikasi dan build
proses terahir adalah install aplikasi nodejs tersebut. Hal ini akan sangat bergantung pada jenis script / aplikasi yang akan di deploy. Kebetulan aplikasi yang digunakan pada contoh ini berbasiskan cronjob sehingga hanya perlu build dan install
npm install
kemudian
npm run build
done~ jika build berhasil maka tidak akan ada error pada konsol serta akan muncul folder bernama dist (ini dikarenakan project yang digunakan berbasis typescript)
aplikasi telah siap digunakan (pada cronjob). Untuk skenario lain seperti express maka dapat menggunakan pm2
https://www.npmjs.com/package/pm2
sedangkan jika aplikasi berupa scheduler maka cukup dimasukan pada crontab
crontab -e
masukan perintah crontab