Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • CI/CD Laravel: Otomatisasi Deployment dengan Jenkins & Docker
  • Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  • Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)
  • Panduan Lengkap: Deploy Website Statis ke Kubernetes Menggunakan Docker + NodePort
  • Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

Recent Comments

  1. Masdika.BIZ.ID on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  2. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  3. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  4. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy
  5. someone on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Archives

  • August 2025
  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Cara Mudah Deploy Website Node.js Menggunakan Docker

July 22, 2025 Tutorial by Masdika.BIZ.ID
Cara Mudah Deploy Website Node.js Menggunakan Docker

Ingin hosting website kamu dengan cepat, ringan, dan fleksibel? 🔥 Artikel ini cocok banget buat kamu yang ingin belajar cara deploy website Node.js menggunakan Docker tanpa ribet!

Langkah ini cocok untuk website hasil build dari framework seperti Vue, React, atau bahkan HTML manual. Kita akan pakai Node.js sebagai server statis, dibungkus dengan Docker. Yuk, kita mulai! 😎

🔧 Apa yang Akan Kita Lakukan?

  • ✅ Download project website
  • ✅ Menambahkan server Node.js untuk serve file statis
  • ✅ Membuat Dockerfile
  • ✅ Build Docker image
  • ✅ Jalankan container

🌎 Langkah-langkah Deploy Website Node.js

1. Download Folder Website

Pertama, download project web yang sudah disiapkan menggunakan wget:

wget https://www.masdika.biz.id/wp-content/uploads/2025/07/nodejs-test.zip
unzip nodejs-test.zip
cd nodejs-test

Struktur folder-nya akan seperti ini:

assets/  css/  js/  index.html

2. Tambahkan Server Node.js (index.js)

Pastikan ada file index.js untuk serve file HTML secara statis:

const http = require('http');
const fs = require('fs');
const path = require('path');

const port = 8080;

http.createServer((request, response) => {
    console.log('Request:', request.url);
    let filePath = '.' + request.url;
    if (filePath === './') filePath = './index.html';

    const extname = String(path.extname(filePath)).toLowerCase();
    const mimeTypes = {
        '.html': 'text/html',
        '.js': 'text/javascript',
        '.css': 'text/css',
        '.png': 'image/png',
        '.jpg': 'image/jpg',
        '.svg': 'image/svg+xml'
    };

    const contentType = mimeTypes[extname] || 'application/octet-stream';

    fs.readFile(filePath, (err, content) => {
        if (err) {
            if (err.code === 'ENOENT') {
                response.writeHead(404, { 'Content-Type': 'text/html' });
                response.end('404 Not Found', 'utf-8');
            } else {
                response.writeHead(500);
                response.end(`Server Error: ${err.code}`);
            }
        } else {
            response.writeHead(200, { 'Content-Type': contentType });
            response.end(content, 'utf-8');
        }
    });
}).listen(port);

console.log(`Server running at http://0.0.0.0:${port}`);

3. Buat Dockerfile

File Dockerfile digunakan untuk build image custom dengan Node.js:

FROM node:alpine3.18

RUN apk update --no-cache && apk upgrade && apk add nano bash --no-cache
RUN npm install -g pm2@latest

WORKDIR /node-website
COPY . .

RUN npm init -y

EXPOSE 8080
CMD ["pm2-runtime", "index.js", "--name", "masdika"]

4. Buat .dockerignore

Supaya build-nya lebih bersih:

echo "Dockerfile" > .dockerignore
echo ".dockerignore" >> .dockerignore

5. Build Docker Image 🛠️

Sekarang kita akan membungkus semua file ini ke dalam sebuah Docker image. Jalankan perintah berikut di terminal:

docker build -t masdika-nodejs .

Penjelasan:

  • docker build: perintah untuk membuat image
  • -t masdika-nodejs: memberi nama masdika-nodejs pada image
  • .: artinya build context berada di direktori saat ini

Proses ini akan membaca Dockerfile dan membuat image siap pakai. 🎁

6. Jalankan Docker Container 🚢

Setelah image berhasil dibangun, saatnya menjalankan container dari image tersebut:

docker run -d --name masdika -p 80:8080 masdika-nodejs

Penjelasan:

  • -d: jalankan container dalam mode background
  • --name masdika: beri nama container kamu masdika
  • -p 80:8080: mengarahkan port 8080 di dalam container ke port 80 host agar bisa diakses publik
  • masdika-nodejs: nama image yang barusan kamu build

Setelah dijalankan, kamu bisa langsung akses website kamu via browser di:

http://localhost

Atau kalau kamu menjalankannya di VPS:

http://IP-VPS-KAMU

🎉 Selamat! Website Node.js kamu sekarang sudah online dan berjalan di atas Docker!

📦 Penutup

Dengan cara ini, kamu bisa dengan mudah deploy website apapun yang berbasis Node.js. Cukup siapkan folder, tambahkan index.js sebagai server, siapkan Dockerfile, lalu build dan run. Simpel dan scalable! 😎

Kamu bisa kembangkan lebih lanjut dengan menambahkan:

  • Reverse proxy (pakai NGINX atau Caddy)
  • SSL otomatis dari Let’s Encrypt
  • Integrasi Docker Compose
  • CI/CD biar makin profesional

Semoga tutorial ini bermanfaat! Jangan lupa share ke teman-teman kamu ya! ❤️

Share:
Tags: dockerdockerfilenode.js

Post navigation

Prev
Next
1 Comment
  • Rikiy 11:45 pm July 22, 2025 Reply

    Thankyou mas

Write a comment Cancel Reply

© 2025 www.masdika.biz.id — Semua Hak Dilindungi