Mendeploy Backend API Nodejs Anda di Windows

Ceritanya anda punya backend API yang dibuat dengan Node JS. Misalnya yang paling ngetop Express js. Selama ini saat kita ngode cara menjalakan servicenya dengan perintah node index.js. Tapi masalahnya kalau kita mengandalkan shell saja sebagai server di production, kadang ada bug tidak tertangkap bikin crash. Ketika crash, harus distart lagi manual. Gak mungkin kita nongkrongin server terus kan?

Nah di tutorial ini saya coba tulis caranya deploy backend API NodeJS anda di Windows sebagai service.

Berikut urutan kerjanya:

Copy backend code anda ke server, bisa dengan git clone dari reponya, atau download berupa zip dari reponya, atau kalau anda malas dan cukup sabar, silakan zip/copas satu folder (kalau terbawa node_modules-nya tentu lama dan filenya besar, tapi ya terserah).

Kalau anda narik dari repo, jangan lupa npm install atau yarn untuk menyiapkan foldernya.

Di sini kita menggunakan node-windows (https://github.com/coreybutler/node-windows) untuk registrasi servicenya.

Kita install dulu node-windowsnya:
npm install -g node-windows

Di folder proyek anda kita link node-windows dengan perintah sbb:
npm link node-windows

Buatlah script install_service.js yang isinya seperti berikut (sesuaikan dengan nama aplikasi anda):

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'API Observasi',
  description: 'API backend for Aplikasi Observasi.',
  script:  require('path').join(__dirname,'index.js'),
  nodeOptions: [
    '--harmony',
    '--max_old_space_size=4096'
  ]
  //, workingDirectory: '...'
  // , allowServiceLogon: true
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

svc.install();

Buat juga script uninstallnya just in case:

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'API Observasi',
  description: 'API backend for Aplikasi Observasi.',
  script: 'c:\\www\\observasi\\api\\index.js',
});

// Listen for the "uninstall" event so we know when it's done.
svc.on('uninstall',function(){
  console.log('Uninstall complete.');
  console.log('The service exists: ',svc.exists);
});

// Uninstall the service.
svc.uninstall();

Setelah itu buka command prompt as administrator, lalu jalankan:
node install_service.js

Maka seharusnya service anda akan tampak di daftar service windows:

API Observasi telah terdaftar di Services

Untuk memastikan service selalu on walaupun terjadi crash, klik kanan service kita > properties > recovery. Set restart the service dan reset service after dengan 0. Dengan begini ke setelah crash service langsung on.

Recovery settings

Demikian, silakan mencoba!

Update terbaru:

Jaman sekarang ada beberapa tools yang sangat bermanfaat untuk deploy node di berbagai platform, yaitu PM2, Forever, Nodemon, Pm2 and Strong-Pm. Paling populer untuk deploy biasanya PM2 dan Strong PM, dan untuk development biasanya nodemon.

Tinggalkan komentar