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 sudo yetkisi.
  • Alan adıyla otomatik SSL kullanacaksanız DNS A/AAAA kaydının sunucu IP adresine yönlenmiş olması.
  • Güvenlik duvarında TCP 80 ve 443 portları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/AAAA kaydı sunucuya yönleniyor mu, 80/443 açık mı? DNS yayı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/Caddyfile ile dosyayı doğrulayın, sonra sudo systemctl reload caddy çalıştırın.
  • Boş sayfa / 404: root dizinini ve dosya izinlerini kontrol edin. SELinux veya AppArmor politikaları engelliyor olabilir.
¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)