Skip to content

zaidan's blog

a newbie, writing IT-related stuff and some personal experiences

Menu
  • IT
  • Personal life/opinion
  • Linux
  • Sepeda
  • Proxmox
  • VM/Container
  • Kuliah/Catatan Kuliah
Menu

Deploy node.js Sebagai systemd service di RHEL

Posted on 08/10/2025 by Zaidan

Hai semuanya, apa kabar? Kali ini kita akan coba untuk menjalankan aplikasi sebagai service di Linux menggunakan systemd.

Apa bedanya dengan menjalankan aplikasi biasa?

Apabila kita menjalankan aplikasi seperti biasa (misalnya dengan menggunakan npm start), artinya aplikasi akan berhenti ketika terminal berhenti atau sistem Linux dimatikan/restart.

Dengan menggunakan systemd, kita bisa menjalankan aplikasi seperti service yang ada pada Linux. Jadi kita bisa mengatur aplikasi tersebut agar bisa langsung berjalan setelah sistem booting, bisa restart otomatis saat crash, dan juga log-nya tercatat pada journalctl.

Persiapan

Pada pengujian kali ini menggunakan RHEL. Pertama, kita akan instal node.js terlebih dahulu. Kita akan mencoba untuk membuat aplikasi node.js sederhana.

sudo dnf install -y nodejs git

Lalu, kita siapkan juga direktorinya.

mkdir -p ~/myapp && cd ~/myapp

Pembuatan Aplikasi Node.js Sederhana

Kita tidak membuat aplikasinya dari nol. Kita akan clone repositori Pak Ricardo (instruktur Red Hat) dari GitLab. Aplikasi ini akan menampilkan gambar stock dari Red Hat. Pastikan juga saat clone menggunakan user biasa/non-root karena systemd nantinya akan dijalankan dengan hak akses user ini.

git clone https://gitlab.com/rgdacosta/nodejs_rhel10
cd nodejs_rhel10

Selanjutnya kita perlu jalankan perintah npm install untuk mengunduh dan memasang semua dependencies yang dibutuhkan oleh project node.js-nya. Hal ini memastikan aplikasi akan memiliki semua komponen yang dibutuhkan.

Konfigurasi SystemD

Kita akan membuat unit file systemd yang akan memberi tahu sistem RHEL untuk menjalankan, monitor, dan mengelola aplikasi.

Buat Unit File

Buat file konfigurasi baru pada direktori /etc/systemd/system.

sudo nano /etc/systemd/system/my-app.service

Kita masukkan konfigurasi berikut. Pastikan untuk menyesuaikan username & direktori yang digunakan.
image host

Aktivasi Service

Selanjutnya, kita perlu memuat ulang systemd dan mengaktifkan aplikasi tersebut.

sudo systemctl daemon-reload
$ sudo systemctl enable --now my-app
Created symlink '/etc/systemd/system/multi-user.target.wants/my-app.service' → '/etc/systemd/system/my-app.service'.

Kita bisa gunakan perintah systemctl status --now my-app untuk melihat status dari aplikasi (yang kini menjadi seperti service).
image host

Konfigurasi Firewall

Konfigurasi firewall perlu dilakukan agar lalu lintas data dapat melewati port yang digunakan (dalam hal ini 8080).

Untuk menambahkan port 8080 secara permanen, gunakan perintah:

sudo firewall-cmd --add-port=8080/tcp --permanent

Terapkan perubahan:

sudo firewall-cmd --reload

Catatan: untuk penggunaan di lingkungan production, selalu pertimbangkan untuk membatasi akses pada port yang digunakan.

Pengujian di Web Browser

Kita coba buka web browser dan kunjungi http://localhost:8080. Apabila berhasil. kita akan dapat melihat stock image dari Red Hat.
image host

Pengujian berhasil. Menampilkan gambar stock dari Red Hat.

Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tulisan saya yang lain:

  • Instalasi Web Server Apache pada Container Ubuntu Server (Proxmox VE)
  • Upgrade Zorin 16 ke Zorin 17
  • Komputer Lama
  • Nyoba Nge-gym (lagi)

Arsip blog

  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
© 2025 zaidan's blog | Powered by Superbs Personal Blog theme