Pendahuluan
Caddy adalah web server modern yang dirancang untuk kemudahan penggunaan, keamanan, dan performa tinggi. Berbeda dengan Apache atau Nginx, Caddy secara otomatis mengelola sertifikat SSL/TLS dari Let's Encrypt tanpa konfigurasi tambahan. Artikel ini akan membahas panduan lengkap langkah demi langkah cara memasang dan mengonfigurasi Caddy Web Server di Debian 13.
Mengapa Memilih Caddy?
- HTTPS Otomatis: Caddy secara otomatis meminta dan memperbarui sertifikat SSL dari Let's Encrypt.
- Caddyfile: Konfigurasi menggunakan sintaks yang mudah dibaca dan ditulis.
- Performa Tinggi: Ditulis dalam bahasa Go, Caddy sangat ringan dan cepat.
- Reverse Proxy: Mendukung reverse proxy ke aplikasi backend seperti Node.js, Python, atau PHP-FPM.
- Keamanan: Mengenkripsi semua lalu lintas secara default.
Persiapan
Sebelum memulai, pastikan Anda sudah memiliki:
- VPS atau server dengan Debian 13 yang sudah terinstal.
- Akses root atau user dengan hak akses sudo.
- Nama domain atau subdomain yang sudah diarahkan (DNS A Record) ke IP server Anda.
Langkah Instalasi
- Lakukan update sistem:
sudo apt update && sudo apt upgrade -y- Instal paket dependensi yang diperlukan:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl- Import kunci GPG resmi Caddy:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg- Tambahkan repositori resmi Caddy:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list- Lakukan update sistem kembali:
sudo apt update- Instal caddy:
sudo apt install caddy -y- Pastikan Caddy sudah aktif dan berjalan:
sudo systemctl status caddyJika belum aktif, jalankan perintah berikut:
sudo systemctl start caddysudo systemctl enable caddyKonfigurasi Dasar
File konfigurasi Caddy terletak di /etc/caddy/Caddyfile. Buka file tersebut menggunakan text editor:
sudo nano /etc/caddy/CaddyfileMelayani File Statis
Jika Anda ingin meng-hosting file statis seperti HTML, CSS, dan JavaScript:
https://domain-anda.com {
root * /var/www/html
file_server
}Reverse Proxy ke Aplikasi Backend
Jika Anda menjalankan aplikasi backend (misalnya Node.js di port 3000):
https://domain-anda.com {
reverse_proxy localhost:3000
}PHP-FPM
Jika Anda menjalankan aplikasi PHP dengan PHP-FPM:
https://domain-anda.com {
root * /var/www/html
php_fastcgi unix//run/php/php8.5-fpm.sock
file_server
}Ganti php8.5 dengan versi PHP yang Anda gunakan.
Gzip Kompresi
Untuk mengaktifkan kompresi gzip agar website lebih cepat:
https://domain-anda.com {
root * /var/www/html
encode gzip
file_server
}Menggunakan IP Address (Tanpa Domain)
Jika Anda belum memiliki domain dan ingin menggunakan IP address langsung:
:80 {
root * /var/www/html
file_server
}Catatan: Fitur HTTPS otomatis hanya berfungsi jika Anda menggunakan domain yang valid. Jika menggunakan IP address, Caddy hanya akan melayani HTTP pada port 80.
Membuat Folder Web
Buat folder untuk menyimpan file website:
sudo mkdir -p /var/www/htmlBuat file index.html untuk pengujian:
echo '<!DOCTYPE html>
<html>
<head><title>Halo dari Caddy</title></head>
<body>
<h1>Caddy Web Server Berhasil Berjalan!</h1>
</body>
</html>' | sudo tee /var/www/html/index.htmlUbah kepemilikan folder:
sudo chown -R www-data:www-data /var/www/htmlRestart Caddy
Setelah selesai mengonfigurasi, restart Caddy agar konfigurasi baru berlaku:
sudo systemctl restart caddyPeriksa apakah tidak ada error:
sudo journalctl -u caddy --no-pager -n 20Firewall
Jika Anda menggunakan UFW firewall, buka port HTTP dan HTTPS:
sudo apt install ufw -ysudo ufw allow httpsudo ufw allow httpssudo ufw enablePemecahan Masalah
Error: "Job for caddy.service failed"
Cek detail error:
sudo journalctl -u caddy --no-pager -n 50Pastikan tidak ada syntax error di Caddyfile. Validasi konfigurasi:
sudo caddy validate --config /etc/caddy/CaddyfileError: "403 Forbidden"
Pastikan folder website memiliki hak akses yang benar:
sudo chown -R www-data:www-data /var/www/htmlError: "502 Bad Gateway"
Jika menggunakan reverse proxy, pastikan aplikasi backend sudah berjalan dan port yang digunakan sudah sesuai.
Cek apakah aplikasi backend aktif:
sudo systemctl status nama-aplikasi-andaSertifikat SSL Tidak Terbuat
Pastikan domain Anda sudah benar-benar terarah ke IP server melalui DNS. Periksa DNS:
dig domain-anda.com +shortPort 80/443 Terblokir
Pastikan firewall tidak memblokir port 80 dan 443:
sudo ufw statusKesimpulan
Caddy Web Server adalah pilihan modern yang sangat tepat untuk Debian 13. Dengan fitur HTTPS otomatis, konfigurasi yang sederhana, dan performa tinggi, Caddy memudahkan Anda dalam mengelola web server tanpa perlu khawatir tentang sertifikat SSL. Caddy sangat cocok untuk hosting file statis, reverse proxy, maupun aplikasi berbasis PHP.