Caddy Web Server: Pilihan Ringan dan Praktis untuk Tahap Development

Pada pengembangan aplikasi web, kita sering mencari tool yang mudah dipakai, aman secara default, dan tidak membuang waktu untuk konfigurasi rumit. Untuk tahap development, salah satu kandidat yang layak dipertimbangkan adalah Caddy Web Server.

Caddy dikenal sebagai web server modern yang memprioritaskan kemudahan konfigurasi dan SSL otomatis. Meski sering digunakan di production, ia juga sangat cocok dipakai di tahap development, terutama jika digabungkan dengan mkcert untuk membuat sertifikat SSL lokal yang valid di browser.

Instalasi Caddy

Langkah instalasi Caddy web server di Ubuntu:

sudo mkdir -p /usr/share/keyrings

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
  | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] \
https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" \
  | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update
sudo apt install caddy

Kenapa Caddy Cocok untuk Development?

Konfigurasi Sangat Sederhana

Tidak seperti Nginx atau Apache yang memerlukan banyak baris konfigurasi, Caddy hanya butuh satu file Caddyfile.

myapp.local {
  root * ./public
  file_server
}

SSL Otomatis (Bahkan di Localhost)

Caddy memiliki kemampuan Let’s Encrypt bawaan untuk SSL di server publik.
Namun, di tahap development kita bisa menggabungkannya dengan mkcert agar localhost juga bisa diakses dengan HTTPS valid.

Langkah instalasi mkcert di Ubuntu 24.04 dan generate sertifikat SSL:

sudo apt install mkcert libnss3-tools
mkcert -install
mkcert myapp.local
sudo mv *.pem /etc/caddy
sudo chown caddy:caddy /etc/caddy/*.pem

Konfigurasi Caddyfile dengan SSL/TLS:

myapp.local {
  root * ./public
  file_server
  tls /etc/caddy/myapp.local.pem /etc/caddy/myapp.local-key.pem
}

Mendukung Reverse Proxy

Jika kamu mengembangkan aplikasi microservices atau API lokal, Caddy dapat dijadikan reverse proxy sederhana:

myapp.local {
  reverse_proxy localhost:5000
  tls /etc/caddy/myapp.local.pem /etc/caddy/myapp.local-key.pem
}  

Untuk tahap development, Caddy + mkcert memberikan pengalaman HTTPS lokal yang aman, cepat, dan tanpa drama konfigurasi.
Lebih sedikit waktu mengurus web server dan lebih banyak waktu fokus pada pengembangan aplikasi.

Scroll to Top