Episode ini menceritakan evolusi web server dari Apache dan NGINX, kelahiran Caddy oleh Matt Holt di tahun 2015 sebagai web server pertama dengan automatic HTTPS, keunggulan utamanya, perbandingan dengan alternatif, dan use case yang paling cocok untuk Caddy.

Sebelum kalian menulis Caddyfile pertama, penting untuk memahami mengapa Caddy ada. Web server bukan konsep baru — Apache dan NGINX sudah menguasai internet selama puluhan tahun. Lalu apa yang membuat Matt Holt bersusah payah membuat web server baru di tahun 2015?
Jawabannya sederhana: HTTPS. Mengamankan situs dengan sertifikat TLS secara manual itu menyakitkan — kalian harus membeli sertifikat, memasangnya, mengonfigurasi renewal, dan mengulanginya setiap 90 hari. Caddy lahir untuk menghapus semua kerumitan itu. Dia adalah web server pertama yang menyediakan HTTPS otomatis secara default.
Episode 1 ini membawa kalian menelusuri sejarah dan latar belakang Caddy, keunggulan yang membedakannya, perbandingan dengan kompetitor, serta use case yang paling cocok. Ini konteks yang akan membuat keputusan di episode-episode berikutnya terasa masuk akal.
Apache mendominasi awal internet berkat fleksibilitasnya: .htaccess, modul dinamis, dan dokumentasi yang lengkap. Namun fleksibilitas itu datang dengan harga — konfigurasi .htaccess dan file .conf yang panjang, ditambah model process-per-request yang boros memori.
NGINX muncul sebagai penantang dengan arsitektur event-driven yang jauh lebih hemat resource dan sering dipakai sebagai reverse proxy di depan aplikasi. Masalahnya: mengonfigurasi NGINX untuk HTTPS tetap manual. Kalian harus menyediakan file sertifikat, menulis blok ssl_certificate, mengatur redirect HTTP ke HTTPS, dan menyiapkan cron untuk perpanjangan sertifikat.
Di luar kerumitan sintaks, masalah terbesar web server tradisional adalah manajemen sertifikat manual. Setiap situs baru berarti sertifikat baru. Setiap sertifikat yang kedaluwarsa berarti situs down atau peringatan keamanan di browser. Perpanjangan otomatis adalah fitur yang mahal dan rumit untuk dikonfigurasi.
Dunia modern butuh lebih: banyak situs, deployment cepat, lingkungan multi-instance, dan keamanan yang ter-encrypt secara default, bukan opsional.
Caddy diciptakan oleh Matt Holt dan rilis pertama kali di tahun 2015. Ide besarnya revolusioner: membalik konvensi — alih-alih HTTPS menjadi sesuatu yang kalian konfigurasi, HTTPS menjadi perilaku default yang otomatis. Jika kalian menulis nama domain di Caddyfile, Caddy akan mendapatkan sertifikat dari Let's Encrypt tanpa langkah tambahan.
Caddy ditulis dalam Go, bahasa yang dikenal untuk performa tinggi, concurrency, dan hasil compile berupa binary statis tunggal. Hasilnya: satu file binary tanpa dependency eksternal yang bisa dijalankan di hampir semua platform. Caddy dirilis dengan lisensi Apache 2.0, sepenuhnya open source.
Sejak awal, Caddy dirancang untuk developer: konfigurasi yang bisa dibaca manusia (Caddyfile), reload yang mulus tanpa downtime, dan API administrasi untuk perubahan konfigurasi secara dinamis. Semua itu dibangun di atas sistem modul yang memungkinkan ekstensi tanpa menulis ulang inti.
Ini fitur unggulan yang tidak dimiliki web server lain secara bawaan:
Bandingkan blok konfigurasi minimal di berbagai server:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
root /var/www;
}Di Caddy, seluruh blok di atas cukup menjadi:
example.com {
root * /var/www
file_server
}Perhatikan: tidak ada nama file sertifikat, tidak ada port 443, tidak ada blok redirect — semuanya otomatis. Perintah caddy adapt bisa mengubah Caddyfile menjadi JSON:
caddy adapt --config Caddyfile.htaccess dan ekosistem modul yang sangat tua. Di dunia modern, pilihan ini makin jarang.caddy run --config Caddyfile memulai server, dan jika terjadi kesalahan, Caddy memberi tahu lewat log yang jelas — bukan error cryptic.
Episode 1 memberi kalian konteks sejarah: dari kerumitan HTTPS manual di Apache dan NGINX, lahirnya Caddy oleh Matt Holt di tahun 2015 sebagai web server pertama dengan automatic HTTPS bawaan, ditulis dalam Go dengan lisensi Apache 2.0, hingga keunggulan Caddyfile yang ringkas dan reload tanpa downtime.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah arsitektur dan core concepts Caddy — komponen HTTP server core, sistem modul, alur request dari listener hingga respons, konsep site address, directive, matcher, dan handler, serta empat metode konfigurasi yang tersedia. Ini fondasi yang akan dipakai di seluruh series.