Memasang NodeJS di Debian 13

Pendahuluan

NodeJS adalah runtime JavaScript berbasis V8 (mesin yang sama dengan Google Chrome) yang memungkinkan Anda menjalankan JavaScript di sisi server. Dengan NodeJS, Anda bisa membangun API, bot, layanan real‑time, hingga aplikasi web penuh hanya dengan satu bahasa pemrograman. Artikel ini membahas panduan lengkap cara memasang NodeJS di Debian 13 (Trixie) lewat beberapa metode, memverifikasi instalasi, membuat aplikasi pertama, dan mendaftarkannya sebagai layanan systemd.

Mengapa Menggunakan NodeJS?

  • Satu Bahasa Ujung ke Ujung: Pakai JavaScript baik di browser maupun di server.
  • Event‑Driven & Asinkron: Cocok untuk aplikasi yang melayani banyak koneksi secara efisien.
  • Ekosistem npm: Ribuan paket siap pakai melalui manajer paket npm.
  • Lintas Platform: Berjalan di Linux, macOS, dan Windows.
  • Komunitas Besar: Dokumentasi dan dukungan sangat luas.

Persiapan

Sebelum memulai, pastikan Anda sudah memiliki:

  • VPS atau server dengan Debian 13 yang terinstal.
  • Akses root atau user dengan hak sudo.
  • Koneksi internet untuk mengunduh paket.

Perbarui sistem terlebih dahulu agar paket yang diinstal mutakhir:

bash
sudo apt update && sudo apt upgrade -y

Metode 1: NodeSource (Rekomendasi)

NodeSource menyediakan paket NodeJS resmi yang selalu menyertakan versi LTS (Long Term Support) terbaru, berbeda dengan repository bawaan Debian yang kadang lebih lambat mengikuti rilis. Cara ini adalah yang paling disarankan untuk produksi.

  1. Instal prasyarat dan impor kunci GPG NodeSource:
    bash
    sudo apt install -y ca-certificates curl gnupg
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
  2. Tambahkan repositori NodeSource. Ganti 22 dengan versi mayor yang diinginkan (misalnya 20 atau 24):
    bash
    NODE_MAJOR=22
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
  3. Perbarui indeks paket lalu instal NodeJS:
    bash
    sudo apt update
    sudo apt install -y nodejs

Perintah di atas sekaligus menginstal npm (manajer paket NodeJS).

Metode 2: Repository Bawaan apt

Jika Anda cukup puas dengan versi yang disertakan Debian, cukup gunakan apt. Kelebihannya simpel, namun versinya biasanya lebih lama dari rilis LTS terbaru:

bash
sudo apt install -y nodejs npm

Untuk mengecek versi yang tersedia di repository Debian:

bash
apt-cache policy nodejs

Metode 3: NVM (Node Version Manager)

Jika Anda perlu menjalankan beberapa versi NodeJS secara bergantian (misalnya untuk menguji kompatibilitas aplikasi), gunakan NVM. NVM terinstal di direktori user, bukan sistem.

  1. Unduh dan jalankan skrip pemasangan NVM:
    bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
  2. Muat NVM ke shell sesi ini:
    bash
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
  3. Instal versi NodeJS yang diinginkan lalu aktifkan:
    bash
    nvm install 22
    nvm use 22

Dengan NVM, setiap versi terpasang terisolasi dan mudah diubah lewat nvm use <versi>.

Verifikasi Instalasi

Cek versi NodeJS dan npm untuk memastikan keduanya terpasang dengan benar:

bash
node -v
npm -v

Jika perintah di atas menampilkan nomor versi (misalnya v22.x.x dan 10.x.x), instalasi berhasil.

Membuat Aplikasi Pertama (Hello World)

Buat folder proyek dan file app.js:

bash
mkdir ~/hello-node && cd ~/hello-node
nano app.js

Isi app.js dengan server HTTP sederhana:

javascript
const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
  res.end('Halo dari NodeJS di Debian 13!\n');
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server berjalan di http://localhost:${PORT}`);
});

Jalankan aplikasi:

bash
node app.js

Buka http://localhost:3000 di browser (atau curl http://localhost:3000 di server) untuk melihat hasilnya. Hentikan server dengan menekan Ctrl+C.

Menjalankan sebagai Layanan systemd

Untuk menjalankan aplikasi secara otomatis saat boot dan tetap hidup jika proses berhenti, daftarkan sebagai layanan systemd.

  1. Buat file unit:
    bash
    sudo nano /etc/systemd/system/node-hello.service
  2. Isi dengan konfigurasi berikut (sesuaikan User dan WorkingDirectory):
    ini
    [Unit]
    Description=Layanan NodeJS Hello World
    After=network.target
    
    [Service]
    Type=simple
    User=sugeng
    WorkingDirectory=/home/sugeng/hello-node
    ExecStart=/usr/bin/node app.js
    Restart=on-failure
    Environment=NODE_ENV=production
    
    [Install]
    WantedBy=multi-user.target
  3. Muat ulang systemd lalu aktifkan dan jalankan layanan:
    bash
    sudo systemctl daemon-reload
    sudo systemctl enable node-hello
    sudo systemctl start node-hello
  4. Pastikan statusnya aktif:
    bash
    sudo systemctl status node-hello

Reverse Proxy dengan Caddy (Opsional)

Agar aplikasi dapat diakses lewat domain dengan HTTPS otomatis, Anda dapat memasang Caddy dan menjadikannya reverse proxy ke NodeJS di port 3000. Panduannya tersedia di artikel Memasang Caddy Web Server di Debian 13. Cuplikan Caddyfile‑nya:

caddyfile
https://domain-anda.com {
    reverse_proxy localhost:3000
}

Firewall

Jika menggunakan UFW, pastikan port 80 dan 443 terbuka (NodeJS biasanya berada di balik reverse proxy seperti Caddy, sehingga cukup dua port tersebut):

bash
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Pemecahan Masalah

node: command not found

Pastikan PATH sudah memuat direktori bin NodeJS. Untuk instalasi sistem, jalankan source ~/.bashrc atau buka terminal baru. Untuk NVM, pastikan nvm use sudah dijalankan.

npm warn setuid/setgid

Peringatan npm warn saat instalasi global biasanya aman diabaikan. Hindari menjalankan npm sebagai root untuk paket yang tidak terpercaya; gunakan direktori user atau NVM.

EACCES: permission denied

Jika npm install -g gagal karena hak akses, jangan gunakan sudo secara sembarangan. Lebih baik atur prefix npm ke direktori user:

bash
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH

Port sudah digunakan

Jika muncul error EADDRINUSE, porta sudah dipakai proses lain. Cek dengan:

bash
sudo ss -ltnp | grep :3000

Hentikan proses pengguna port tersebut, atau ubah PORT di aplikasi Anda.

Kesimpulan

NodeJS di Debian 13 sangat mudah dipasang, baik lewat NodeSource untuk versi LTS terbaru, apt bawaan untuk kemudahan, maupun NVM bila Anda butuh banyak versi. Setelah terinstal, verifikasi dengan node -v, buat aplikasi pertama, lalu daftarkan sebagai layanan systemd agar selalu berjalan. Dengan paduan ini, server Debian 13 Anda siap menjadi fondasi aplikasi JavaScript yang handal.

Artikel Terkait