Skip to content

Deploy Static Website

πŸš€ Get Started

Panduan ini menjelaskan cara mempublikasikan hasil build Hugo menggunakan NGINX Container.

Website hasil build akan dijalankan secara langsung menggunakan Podman dengan me-mount direktori public/ sebagai document root NGINX.

Setelah menyelesaikan panduan ini, website dapat diakses menggunakan web browser.


πŸ“‹ Prerequisites

Pastikan:

  • Website telah berhasil di-build.
  • NGINX Image telah tersedia.

Apabila belum, lihat dokumen berikut.


▢️ Procedure

Review Build Output

Pastikan direktori public/ telah berhasil dihasilkan.

tree public -L 2

Contoh output.

public
β”œβ”€β”€ 404.html
β”œβ”€β”€ assets
β”œβ”€β”€ css
β”œβ”€β”€ images
β”œβ”€β”€ index.html
β”œβ”€β”€ sitemap.xml
└── ...

Pastikan file index.html tersedia.

Run NGINX Container

Jalankan NGINX Container dengan me-mount direktori public/.

podman run -d \
  --name hugo-site \
  -p 8080:80 \
  -v $(pwd)/public:/usr/share/nginx/html:ro \
  nginx:latest

Keterangan:

Parameter Description
-d Menjalankan container di background.
--name Memberikan nama container.
-p 8080:80 Memetakan port host ke container.
-v Me-mount direktori public/ sebagai document root NGINX.
:ro Mount dalam mode read-only.

Verify Running Container

Pastikan container berhasil dijalankan.

podman ps

Contoh output.

CONTAINER ID  IMAGE           STATUS         PORTS
xxxxxxx       nginx:latest    Up 10 seconds  0.0.0.0:8080->80/tcp

Access Website

Buka browser.

http://localhost:8080

Sesuaikan alamat host dan port apabila menggunakan konfigurasi yang berbeda.


βœ… Verification

Pastikan:

  • Container NGINX berstatus Running.
  • Website dapat diakses melalui browser.
  • Halaman utama berhasil ditampilkan.
  • Tidak terdapat broken link.

Verification

Static website berhasil dipublikasikan menggunakan NGINX Container.


πŸ’‘ Engineering Notes

Pada panduan ini, hasil build Hugo tidak disalin ke direktori deployment lain.

NGINX Container secara langsung menggunakan direktori public/ sebagai document root melalui mekanisme bind mount, sehingga setiap perubahan hasil build dapat segera dipublikasikan tanpa perlu melakukan proses penyalinan file.

Pendekatan ini sederhana, mudah dipahami, dan sesuai untuk proses development maupun pengujian lokal.