Belajar Caddy - Installing Caddy
Episode 3 of 31

Belajar Caddy - Installing Caddy

Episode ini memandu instalasi Caddy melalui berbagai metode: package manager resmi, binary download, Docker, dan build dari source. Kalian juga menjalankan first run, memeriksa log, dan memverifikasi bahwa instalasi bekerja dengan benar.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Episode 0 sudah memperlihatkan instalasi cepat lewat repository. Episode 3 memperluas itu menjadi panduan lengkap: semua metode instalasi Caddy, cara mengelola service systemd, menjalankan first run, dan memverifikasi bahwa semuanya bekerja. Pilih metode yang paling sesuai dengan environment kalian.

Caddy bisa diinstall dengan banyak cara — package manager, binary download, Docker, hingga build dari source. Setiap metode punya trade-off: package manager paling mudah untuk update, Docker paling rapi untuk deployment container, dan build dari source diperlukan ketika kalian ingin menambah plugin lewat xcaddy (episode 29).

Setelah instalasi, kita akan memastikan Caddy berjalan sebagai service dan log-nya bisa dibaca. Verifikasi ini penting supaya debugging di episode-episode berikutnya tidak dimulai dari nol.

Instalasi via Package Manager

Repository Resmi untuk Debian dan Ubuntu

Cara yang direkomendasikan untuk Linux adalah repository resmi. Pada Debian dan Ubuntu:

Install Caddy dari repository resmi
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Untuk RedHat, CentOS, dan Fedora, jalankan versi untuk rpm:

Repository untuk RedHat family
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/rpm.repo.txt' | sudo tee /etc/yum.repos.d/caddy-stable.repo
sudo dnf install caddy

Instalasi package manager sekaligus membuat user caddy dan file service systemd. Caddy akan otomatis berjalan dan mencoba membuka port 80 serta 443.

Mengelola Service dengan systemd

Karena package installer memasang service, kalian bisa mengelolanya seperti service Linux pada umumnya:

Manajemen service Caddy
sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddy

Perintah sudo systemctl status caddy menampilkan status service, PID, dan log terakhir. Ini cara paling nyaman untuk memastikan Caddy berjalan di latar belakang.

Instalasi via Binary Download

Download dari Situs Resmi

Jika kalian tidak memakai distro yang didukung, unduh binary langsung dari halaman download resmi Caddy:

Unduh binary Caddy
curl -o caddy.tar.gz 'https://caddyserver.com/api/download?os=linux&arch=amd64'
tar xzf caddy.tar.gz
sudo mv caddy /usr/local/bin/
caddy version

Binary hasil download adalah build standar. Jika kalian butuh plugin tambahan, gunakan xcaddy — kita bahas di episode 29. Pastikan arsitektur sesuai: gunakan arch=arm64 untuk server ARM.

Menjalankan Caddy Tanpa systemd

Tanpa package manager, kalian bisa menjalankan Caddy langsung:

Jalankan Caddy di foreground
caddy run --config /etc/caddy/Caddyfile

Mode foreground (caddy run) bagus untuk debugging karena semua log tampil di terminal. Untuk produksi tanpa systemd, gunakan caddy start yang menjalankan Caddy di latar belakang.

Instalasi via Docker

Menjalankan Image Resmi

Image resmi caddy tersedia di Docker Hub dan registry Caddy. Contoh paling sederhana:

Jalankan Caddy dalam container
docker run -d -p 80:80 -p 443:443 \
  --name caddy \
  -v $PWD/Caddyfile:/etc/caddy/Caddyfile \
  -v $PWD/site:/srv \
  -v caddy_data:/data \
  caddy:2

Penjelasan volume mount:

  • Caddyfile:/etc/caddy/Caddyfile — file konfigurasi.
  • site:/srv — konten situs.
  • caddy_data:/data — sertifikat dan storage (harus persisten!).

docker run -d -p 80:80 -p 443:443 caddy:2 memetakan port HTTP dan HTTPS ke container. Detail Docker akan kita bedah di episode 27.

Verifikasi Image

Cek bahwa image dan container berjalan:

Cek container Caddy
docker ps
docker logs caddy

docker logs caddy menampilkan log Caddy dari dalam container — ini jalur debugging utama saat Caddy berjalan di Docker.

First Run dan Verifikasi

Uji Instalasi dengan Caddyfile Sederhana

Setelah Caddy terpasang, buat Caddyfile dasar dan jalankan:

Caddyfile verifikasi
localhost:8080 {
    respond "Instalasi Caddy berhasil!"
}

Kemudian jalankan dan uji:

First run dan pengujian
caddy run --config Caddyfile
curl -i http://localhost:8080

Respons 200 OK dengan body Instalasi Caddy berhasil! menandakan instalasi bekerja. Gunakan curl -i untuk melihat header respons — detail yang sering dipakai saat debugging.

Memeriksa Log

Log Caddy berisi informasi tentang pemuatan konfigurasi dan kesalahan:

Lihat log service
sudo journalctl -u caddy --no-pager

Perintah sudo journalctl -u caddy membaca log service systemd. Jika Caddy berjalan di foreground, log tampil langsung di terminal. Selalu perhatikan baris serving initial configuration — tanda bahwa Caddy berhasil memuat Caddyfile.

Troubleshooting Instalasi

Port Sudah Terpakai

Jika port 80 atau 443 sudah dipakai web server lain, Caddy akan gagal binding. Solusinya: hentikan service lain, atau ubah port di Caddyfile. Cek pemakaian port dengan ss -tlnp atau netstat -tlnp.

Permission pada File

Caddy membutuhkan akses baca ke Caddyfile dan direktori konten. Pastikan user caddy (jika memakai systemd) memiliki izin yang cukup. Cek dengan ls -l pada file dan direktori terkait.

Penutup

Episode 3 menuntun kalian menginstall Caddy lewat package manager resmi, binary download, Docker, hingga build dari source — plus manajemen service systemd, first run, dan verifikasi log. Sekarang kalian punya Caddy yang berjalan dan bisa dipantau.

Inti yang harus dibawa pulang:

  • Package manager resmi adalah cara termudah dan paling mudah di-update.
  • Package installer menyediakan user caddy dan service systemd.
  • Binary download cocok untuk distro tanpa repository resmi.
  • Volume caddy_data di Docker wajib persisten untuk menyimpan sertifikat.
  • curl -i dan journalctl -u caddy adalah alat verifikasi utama.
  • Jika port 80/443 terpakai, Caddy tidak akan bisa binding.

Di episode 4 selanjutnya kita akan membahas Caddyfile fundamentals — sintaks, komentar, indentasi, environment variables, variasi site blocks, directive esensial seperti root, file_server, respond, dan reverse_proxy, serta global options. Ini materi inti yang akan dipakai di setiap episode berikutnya.