Linux'ta Caddy web sunucusu nasıl kurulur?
Caddy; otomatik HTTPS (Let's Encrypt), sade yapılandırma (Caddyfile) ve yerleşik reverse proxy özellikleriyle öne çıkan modern bir web sunucusudur. Bu rehberde Ubuntu/Debian, Rocky/Alma/CentOS/RHEL ve Arch Linux üzerinde paket depoları kullanılarak kurulum, servis yönetimi ve temel yapılandırma örnekleri anlatılır.
Ön Koşullar
- Root ya da
sudoyetkisi - (Alan adıyla otomatik SSL için) DNS A/AAAA kaydı sunucu IP’sine yönlenmiş olmalı
- 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 apt update
sudo apt -y install caddy
2) Rocky / Alma / CentOS / RHEL
RPM depo ekleyip kurun:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://dl.cloudsmith.io/public/caddy/stable/rpm/caddy-stable.repo
sudo dnf -y install caddy
3) Arch Linux
sudo pacman -Syu caddy
4) Servisi başlatma, durum ve günlükler
Kurulumla birlikte bir systemd servisi gelir:
# 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 kurulumu ile varsayılan dosya /etc/caddy/Caddyfile yolundadır. 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 + dizin listeleme)
Alan adınız sunucuya işaret ediyorsa Caddy Let's Encrypt ile sertifikayı otomatik alır.
# /etc/caddy/Caddyfile
example.com {
root * /var/www
encode zstd gzip
file_server browse
# Gerekirse ek başlıklar / cache ayarları burada yapılabilir
}
# Dizin oluştur ve test içerik ekle
sudo mkdir -p /var/www
echo "<h1>Merhaba Caddy</h1>" | sudo tee /var/www/index.html
sudo systemctl reload caddy
7) Ters vekil (Reverse Proxy) örneği
Uygulamanız 127.0.0.1:3000 üzerinde çalışıyorsa:
# /etc/caddy/Caddyfile
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 kullanılabilir:
# /etc/caddy/Caddyfile
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
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
Sık karşılaşılan sorunlar
- Sertifika alınamıyor: Alan adınızın A/AAAA kaydı sunucuya yönlenmiş mi? 80/443 açık mı? DNS yayılımını ve rate limit durumunu kontrol edin.
- Yetki hatası (80/443): Paketle gelen servis, gerekli kapasiteleri ayarladığı için normalde gerekmez; farklı ikili/özel kurulumlarda
setcap cap_net_bind_service=+ep $(command -v caddy)uygulanabilir. - Yapılandırma yüklenmiyor:
sudo caddy validateile dosyayı doğrulayın, sonrasystemctl reload caddy. - Boş sayfa / 404:
rootdizini ve dosya izinlerini kontrol edin; SELinux/RBAC politikaları engelliyor olabilir.
Önerilen Anahtar Kelimeler
caddy kurulum linux, ubuntu caddy install, debian caddy repository, rhel caddy dnf repo, caddyfile örnek, caddy reverse proxy, caddy otomatik https, caddy ufw firewalld