Kısa cevap: Caddy'yi Ubuntu/Debian'da resmî apt deposundan, Rocky/Alma/CentOS/RHEL'de Caddy'nin COPR deposundan, Arch Linux'ta ise pacman ile kurabilirsiniz. Alan adınızı /etc/caddy/Caddyfile dosyasına yazıp servisi yeniden yüklediğinizde Caddy HTTPS sertifikasını otomatik alır. Bunun için 80 ve 443 portlarının açık olması gerekir.
Caddy; otomatik HTTPS (Let's Encrypt ya da ZeroSSL), sade yapılandırma (Caddyfile) ve yerleşik reverse proxy özellikleriyle öne çıkan modern bir web sunucusudur. Aşağıda Ubuntu/Debian, Rocky/Alma/CentOS/RHEL ve Arch Linux üzerinde paket depoları kullanılarak kurulumu, servis yönetimini ve temel yapılandırma örneklerini bulacaksınız.
Ön koşullar
- Root ya da
sudoyetkisi. - Alan adıyla otomatik SSL kullanacaksanız
DNSA/AAAAkaydının sunucu IP adresine yönlenmiş olması. - Güvenlik duvarında
TCP 80ve443portlarının açık olması.
1. Ubuntu / Debian
Resmî depo üzerinden kurulum:
sudo apt update sudo apt -y install curl debian-keyring debian-archive-keyring apt-transport-https 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 chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt -y install caddy
İki chmod satırı, depo ve anahtar dosyalarının apt tarafından okunabilmesini sağlar. Caddy'nin resmî kurulum belgesi de bu satırları içerir.
2. Rocky / Alma / CentOS / RHEL
Caddy'nin resmî COPR deposunu ekleyip kurun:
sudo dnf -y install dnf-plugins-core sudo dnf -y copr enable @caddy/caddy sudo dnf -y install caddy
CentOS Stream 8'in desteği 31 Mayıs 2024'te sona erdi. Yeni kurulumlarda CentOS Stream 9 ya da Rocky/AlmaLinux 8 ve üzeri gibi desteklenen bir sürüm seçin.
3. Arch Linux
sudo pacman -Syu caddy
Bu komut Caddy'yi kurarken sistemin tamamını da günceller.
4. Servisi başlatma, durum ve günlükler
Kurulumla birlikte bir systemd servisi gelir. Debian/Ubuntu paketi servisi otomatik başlatır. Fedora/RHEL ve Arch Linux paketlerinde ise servis varsayılan olarak etkin değildir, bu yüzden aşağıdaki komut gerekir:
# Servisi başlat ve açılışta etkinleştir sudo systemctl enable --now caddy # Durum ve kısa günlük systemctl status caddy journalctl -u caddy -n 100 --no-pager
5. Caddyfile konumu ve temel sözdizimi
Paket kurulumunda varsayılan dosya /etc/caddy/Caddyfile yoludur. Yapılandırmayı değiştirdikten sonra sudo caddy validate ile kontrol edip servisi yeniden yükleyin:
# Değişiklikleri kontrol ve uygulama sudo caddy validate --config /etc/caddy/Caddyfile sudo systemctl reload caddy
6. Statik site yayınlama (otomatik HTTPS ve dizin listeleme)
Alan adınız sunucuya işaret ediyorsa Caddy sertifikayı otomatik alır (Let's Encrypt ya da ZeroSSL). /etc/caddy/Caddyfile dosyasına şunu yazın:
example.com {
root * /var/www
encode zstd gzip
file_server browse
# Gerekirse ek başlıklar / cache ayarları burada yapılabilir
}
Sonra dizini oluşturup test içeriği ekleyin ve servisi yeniden yükleyin:
sudo mkdir -p /var/www echo "<h1>Merhaba Caddy</h1>" | sudo tee /var/www/index.html sudo systemctl reload caddy
file_server browse dizin içeriğini herkese listeler. Bunu yalnızca gerektiğinde kullanın.
7. Ters vekil (reverse proxy) örneği
Uygulamanız 127.0.0.1:3000 üzerinde çalışıyorsa /etc/caddy/Caddyfile dosyasına şunu yazın:
app.example.com {
@static path /assets/* /favicon.ico
handle @static {
root * /var/www/app-static
file_server
}
reverse_proxy 127.0.0.1:3000
}
8. Yerel / dahili kullanım için sertifika
Alan adı internetten erişilebilir değilse geçici olarak dahili CA kullanabilirsiniz. /etc/caddy/Caddyfile dosyasına şunu yazın:
intranet.localhost {
tls internal
root * /srv/site
file_server
}
9. Güvenlik duvarı
Gerekli portları açmayı unutmayın.
# UFW (Ubuntu/Debian) sudo ufw allow 80,443/tcp sudo ufw reload # firewalld (RHEL-tabanlı) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
Caddy varsayılan olarak HTTP/3 kullanır. HTTP/3 için UDP 443 portunu da açın.
10. Güncelleme ve kaldırma
# Debian/Ubuntu sudo apt update && sudo apt -y upgrade # veya sadece Caddy: sudo apt -y install --only-upgrade caddy # RHEL-tabanlı sudo dnf -y upgrade caddy # Kaldırma (servisi durdurup kaldırır) sudo systemctl disable --now caddy # Debian/Ubuntu sudo apt -y purge caddy # RHEL-tabanlı sudo dnf -y remove caddy
apt purge yapılandırma dosyalarını da siler. Kaldırmadan önce Caddyfile dosyanızı yedekleyin.
Sık karşılaşılan sorunlar
- Sertifika alınamıyor: Alan adınızın
A/AAAAkaydı sunucuya yönleniyor mu, 80/443 açık mı?DNSyayılımını ve rate limit (hız sınırı) durumunu kontrol edin. - Yetki hatası (80/443): Paketle gelen servis, gerekli Linux yeteneklerini (capabilities) zaten ayarladığı için normalde bu hata çıkmaz. Farklı ikili ya da özel kurulumlarda
sudo setcap cap_net_bind_service=+ep $(command -v caddy)komutunu uygulayabilirsiniz. - Yapılandırma yüklenmiyor:
sudo caddy validate --config /etc/caddy/Caddyfileile dosyayı doğrulayın, sonrasudo systemctl reload caddyçalıştırın. - Boş sayfa / 404:
rootdizinini ve dosya izinlerini kontrol edin.SELinuxveyaAppArmorpolitikaları engelliyor olabilir.