Senin, 25 Oktober 2021

Tips Mempublish Blog Pribadi Dengan Node.js

Bagi sobat yang dapat programming node.Js dan punya sedikit hobi ngeblog, maka artikel ini sangat cocok untuk kalian baca. Disini aku akan ceritakan pengalaman pribadi dalam membuat blog dengan bahasa pemrograman node.Js


Persiapan

Beberapa hal yang butuh diperhatikan sebelum membuat website/blog dengan node.Js diantaranya:

1. Biaya vps.

Sejauh pengalaman saya, penyedia hosting di indonesia hanya support untuk bahasa php. Maka aku sering menyewa vps untuk dapat menghost aplikasi node.Js saya. Biaya per bulannya kurang lebih $5 atau sekitar 70.000.

Namun, apabila ada provider hosting yang menawarkan harga miring namun support untuk aplikasi node.Js, maka boleh saja kalian coba.

2. Framework

Sebaiknya sobat  tentukan diawal mau pakai framework apa. Aku pribadi lebih menyarankan adonisjs. Karena framework tersebut memang didesain untuk website fullstack. Jadi istilahnya kita tinggal pakai sesuai aturan adonisjs.

By the way, aku sarankan juga untuk menggunakan adonisjs versi 4. Karena yang versi 5 sudah menggunakan typescript. Kecuali sobat sudah biasa mainan typescript.

3. Keamanan

Tidak seperti blogspot yang hostingnya dijamin oleh google, dengan membuat website sendiri maka kestabilan server menjadi tanggung jawab pribadi. Dan faktor keamanan ini menurut aku termasuk poin penting.

Jangan sampai ada orang usil yang menyerang ddos ke ip server sobat. Atau yang lebih parahnya, ada hacker yang sukses mengambil data penting di database dan sobat belum sempat membackupnya.

Maka disini aku menggunakan cloudflare untuk menyembunyikan ip address dari server saya. Dan untuk faktor keamanan lain, adonisjs sudah cukup aman menurut saya.

Oh ya, dengan menggunakan cloudflare kita juga akan mendapatkan ssl (https://) secara gratis dan otomatis aktif.

Deploy production

Sekali lagi, pastikan dulu kita mau mau menggunakan framework apa. Bagi sobat yang sudah terbiasa menggunakan express.Js, maka tidak masalah. Disini aku tidak ada tutorial membuat websitenya. Aku hanya memberikan tips, karena aku anggap kalian sudah dapat ngoding.

1. Gunakan git

Penggunaan git sebagai tool version control sangatlah disarankan sekalipun website yang kalian kembangkan hanya sederhana. Kita dapat menggunakan github atau gitlab. Keduanya gampang digunakan dan gratis.

Ada kalanya kita harus merubah codingan di server karena suatu hal yang urgent. Apabila tidak menggunakan git, maka sobat  akan kehilangan poin mana yang sobat ubah. Dan itu sangatlah mengesalkan.

2. Gunakan Nginx

Seperti yang kita tahu, aplikasi node.Js kebanyakan menggunaka port bukan standar untuk http (port http adalah 80). Contohnya expressjs secara default menggunakan port 3000 dan adonisjs menggunakan port 3333.

Tidak mungkin sekali kita mengarahkan orang untuk menggunjungi domain kita harus dengan portnya (misal http://blogsaya.com:3333). Maka dari itu kita butuh yang namanya reverse proxy.

Nginx (dibaca engine x) adalah aplikasi web server sekaligus proxy server. Proxy server disini bertugas untuk membelokkan port 3333 ke port 80 (http).

Buat file /etc/nginx/sites-enabled/proxynodejs, kemudian  isi dengan script berikut: 

server {

  listen 80;

  server_name domain.com;


  location / {

    proxy_pass http://127.0.0.1:3333;

    proxy_http_version 1.1;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Connection 'upgrade';

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_cache_bypass $http_upgrade;

    proxy_set_header X-Frame-Options 'sameorigin';

    proxy_set_header Strict-Transport-Security 'max-age=300; includeSubDomains; preload; always;';

  }

}

3. Gunakan pm2

PM2 merupakan aplikasi manajement project Node.js. Dengan memakai pm2, maka aplikasi sobat tetap berjalan bahkan ketika server sobat reboot. Pm2 akan otomatis menyalakan aplikasi node.js sobat.

Di website resminya sudah sangat jelas cara penggunaan pm2. Sangat sederhana dan mudah.

Penutup

Selama saya menggunakan node.js sebagai website blog, saya belum mendapati kendala apapun dengan setup diatas. Namun, jika memang sobat mempunyai cara yang lebih mantap dapat berkomentar dibawah ini.

Semoga bermanfaat.