Caddy: sajt sa sertifikatom iz kutije
Web server koji sam pribavlja i obnavlja HTTPS sertifikate. Instalacija na VPS, minimalni Caddyfile i prelazak sa Nginx-a.
Ažurirano 23. avgust 2026.
Caddy radi isto što i Nginx, ali sam izdaje i obnavlja Let's Encrypt sertifikate. Konfiguracija sajta staje u tri reda, pa je za prvi projekat na VDS-u najkraći put do ispravnog HTTPS-a.
Instalacija
Debian i Ubuntu — iz zvaničnog repozitorijuma:
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
> /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy
AlmaLinux i CentOS Stream:
dnf install -y 'dnf-command(copr)'
dnf copr enable -y @caddy/caddy
dnf install -y caddy && systemctl enable --now caddy
Tvoj prvi sajt
Cela konfiguracija se nalazi u /etc/caddy/Caddyfile:
example.ru {
root * /var/www/example.ru
file_server
encode gzip zstd
}
mkdir -p /var/www/example.ru
echo '<h1>Works</h1>' > /var/www/example.ru/index.html
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy
Nekoliko sekundi posle prvog zahteva, sajt se otvara na https://example.ru. Ne moraš ništa drugo da pokrećeš: Caddy je sam preuzeo sertifikat i automatski će ga obnavljati.
Prosleđivanje aplikacije
Ako imaš Node.js ili Python servis na lokalnom portu, konfiguracija izgleda ovako:
api.example.ru {
reverse_proxy 127.0.0.1:3000
}
Caddy sam dodaje zaglavlja X-Forwarded-For i X-Forwarded-Proto. Više o šemi pogledaj u obrnuti proksi.
Više sajtova su samo više blokova u istom fajlu, pogledaj više sajtova na jednoj mašini.
Šta da proveriš unapred
- A zapis domena pokazuje na adresu mašine iz „Pregleda“ panela
/hosting/vds/m/<id>; - portovi 80 i 443 su otvoreni u firewall-u mašine i ne zauzima ih Nginx ili Apache;
- domen se zaista razrešava:
dig +short example.ru.
Ako prva stavka nije urađena, izdavanje sertifikata će pasti: Let's Encrypt mora da dođe do tvoje mašine preko imena domena.
Česte greške
| Simptom | Uzrok |
|---|---|
could not get certificate | Domen ne pokazuje na mašinu ili je port 80 zatvoren |
address already in use | Radi Nginx ili Apache — zaustavi jedan od njih |
| Sajt se otvara samo preko HTTP-a | U Caddyfile-u je navedeno :80 ili http:// pre imena |
| Previše pokušaja izdavanja | Let's Encrypt ograničenja — debaguj sa tls internal |
Logovi: journalctl -u caddy -f.
Caddy čuva sertifikate u
/var/lib/caddy/.local/share/caddy. Kada reinstaliraš sistem na kartici „Pristup“, kopiraj ovaj direktorijum, inače će izdavanje početi ispočetka posle reinstalacije.