Web sunucusu deyince akla ilk gelen isimler genelde Nginx ve Apache oluyor. Son yıllarda bu ikiliye Caddy adında bir alternatif de eklendi. Öne çıkan özelliği: otomatik HTTPS desteği.
Let’s Encrypt sertifikalarını elle ayarlamadan, ekstra bir araç kurmadan doğrudan devreye alıyor. Bu da Caddy’yi hem yeni başlayanlar hem de sertifika yönetimiyle vakit kaybetmek istemeyen sistem yöneticileri için cazip bir seçenek yapıyor.
Go dilinde yazılan Caddy, tek bir ikili dosya (binary) olarak dağıtılıyor. Kurulumu sade. Yapılandırma dosyası Caddyfile, Nginx’in syntax yapısına göre çok daha okunabilir. Birkaç satırlık bir dosyayla hem statik site hem de ters proxy (reverse proxy) yapılandırması yapabilirsiniz.
Caddy Neden Tercih Ediliyor?
Caddy’nin en dikkat çekici özelliği şu: bir alan adını (domain) yapılandırmaya yazdığınız anda otomatik olarak HTTPS sertifikası alıp devreye sokuyor. Certbot kurmanıza, cron job ayarlamanıza ya da sertifika yenileme script’leri yazmanıza gerek yok — Caddy bunların hepsini kendi içinde hallediyor.
- Otomatik HTTPS ve sertifika yenileme
- Basit ve okunabilir yapılandırma dosyası (Caddyfile)
- Tek ikili dosya, harici bağımlılık yok
- Ters proxy, statik dosya sunumu ve yük dengeleme desteği
- HTTP/2 ve HTTP/3 desteği kutudan çıktığı gibi hazır
Ubuntu 26.04’e Caddy Kurulumu
Caddy’yi Ubuntu üzerine kurmanın en güvenilir yolu, resmi paket deposunu sisteme eklemek. Önce gerekli bağımlılıkları kurun:
sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
Ardından Caddy’nin GPG anahtarını ve resmi APT deposunu sisteme ekleyin:
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
Depoyu ekledikten sonra paket listesini güncelleyip Caddy’yi kurun:
sudo apt update
sudo apt install caddy
Kurulum bitince Caddy servisi otomatik başlar, sistem açılışında da devreye girecek şekilde etkinleşir. Durumunu kontrol etmek için:
sudo systemctl status caddy
Temel Caddyfile Yapılandırması
Caddy’nin yapılandırma dosyası varsayılan olarak /etc/caddy/Caddyfile konumunda bulunur. Bir alan adına HTTPS destekli basit bir site sunmak için dosyayı şöyle düzenleyebilirsiniz:
ornekalanadi.com {
root * /var/www/html
file_server
}
Bu birkaç satır, dosya sunumunu ve otomatik HTTPS sertifikasını devreye sokmaya yetiyor. Tek şart: alan adının DNS kaydı sunucunun IP adresine yönlendirilmiş olmalı. Aksi halde Let’s Encrypt doğrulaması başarısız olur.
Yapılandırmayı kaydettikten sonra Caddy’yi yeniden yükleyin:
sudo systemctl reload caddy
Ters Proxy Olarak Kullanmak
Caddy’yi bir uygulama sunucusunun (Node.js veya Python tabanlı bir servis gibi) önünde ters proxy olarak da kullanabilirsiniz. Caddyfile’a şu satırları eklemeniz yeterli:
ornekalanadi.com {
reverse_proxy localhost:3000
}
Bu yapılandırma, gelen tüm HTTPS trafiğini otomatik sertifika yönetimiyle birlikte yerel 3000 portunda çalışan uygulamaya yönlendirir. Nginx’te aynı işi yapmak için genelde çok daha fazla satır yazmanız gerekir.
Güvenlik Duvarı Ayarları
Caddy’nin HTTP ve HTTPS trafiğini karşılayabilmesi için 80 ve 443 portlarının açık olması gerekiyor. UFW kullanıyorsanız:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Nginx’e Kıyasla Ne Sunuyor?
Nginx performans ve olgunluk açısından hâlâ güçlü bir seçim, özellikle yüksek trafikli ve karmaşık ortamlarda. Caddy ise küçük-orta ölçekli projelerde, kişisel sitelerde ya da hızlıca ayağa kaldırılması gereken servislerde zaman kazandırıyor.
Sertifika yenileme sürecini elle takip etmek istemiyorsanız Caddy pratik bir çözüm.
Yapılandırma dosyasını değiştirdiğinizde Caddy değişiklikleri anında algılayıp uyguluyor. Servisi tamamen yeniden başlatmanıza gerek yok — reload komutuyla değişiklikleri devreye alabilirsiniz.