Porównanie
Caddy i automatyczny TLS: koniec z Certbotem
Przez lata mój stos to był Nginx plus Certbot plus cron plus notatka „pamiętać, żeby sprawdzić odnowienie”. Działało, ale każdy nowy hosting wymagał tego samego rytuału: blok serwera, wyzwanie ACME, przeładowanie, modlitwa. Caddy skrócił to do trzech linijek i od tamtej pory nie oglądam się za siebie.
Jak wyglądał Nginx + Certbot
Żeby wystawić jedną domenę po HTTPS, potrzebowałem bloku server, osobnego wywołania Certbota, wpisu w crontab do odnawiania i przeładowania Nginx po każdym odnowieniu. Cztery rzeczy, cztery miejsca, w których coś może cicho pęknąć.
server {
listen 443 ssl;
server_name moja-strona.pl;
ssl_certificate /etc/letsencrypt/live/.../fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/.../privkey.pem;
location / {
proxy_pass http://127.0.0.1:3003;
}
}
# + certbot certonly ...
# + wpis w cron na odnawianie
# + nginx -s reload po odnowieniu
Jak wygląda Caddy
To samo, kompletne, z automatycznym certyfikatem i jego odnawianiem w tle:
moja-strona.pl {
reverse_proxy 127.0.0.1:3003
}
To nie jest skrót w artykule — to cała konfiguracja. Caddy przy pierwszym żądaniu sam załatwia certyfikat z Let's Encrypt, trzyma go, odnawia zanim wygaśnie i przeładowuje się bez przerwy w działaniu. Zero crona, zero ręcznego reload.
Dobra domyślność jest warta więcej niż setka opcji konfiguracyjnych, których nigdy nie ruszysz.
Co daje HTTPS „za darmo”
- Automatyczne odnawianie — certyfikat nie wygaśnie, bo Caddy pilnuje tego sam.
- Przekierowanie HTTP → HTTPS działa domyślnie, bez dodatkowego bloku.
- Nowoczesne szyfry ustawione sensownie od startu — nie muszę śledzić rekomendacji.
- Jeden plik na wszystkie domeny — kolejny hosting to kolejne trzy linijki.
Czy tęsknię za Nginx?
Do bardzo złożonych konfiguracji — wiele upstreamów, wyrafinowany caching, przepisywanie ścieżek — Nginx wciąż bywa mocniejszy. Ale do tego, co robię na co dzień, czyli reverse_proxy na kontener z auto-TLS, Caddy wygrywa prostotą tak wyraźnie, że nie mam o czym myśleć.
Ten wzorzec jest częścią mojego pełnego runbooku deployu — Caddy stoi tam przed każdym kontenerem. W środowiskach o większej skali, gdzie liczy się load balancing i health checki, sięgam po cięższą artylerię — porównałem to w osobnym wpisie o HAProxy i Nginx jako reverse proxy.