janol.pl_

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.
Cloudflare Jedyny moment, w którym trzeba uważać: przy pierwszym wystawieniu certyfikatu wyłącz proxy Cloudflare, żeby wyzwanie ACME dotarło do serwera. Po weryfikacji możesz je z powrotem włączyć.

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.

← wszystkie wpisy