Caddy
Infrastructure
web server
SHOW HN2022
How HN took it
32 positive, 30 neutral or asking, 4 mixed, 14 critical, out of 80 comments about the project. Thread score +0.13.
Execution: 8 for, 3 againstIdea: 6 for, 1 againstPerformance: 1 for, 5 againstDocs: 0 for, 4 againstDesign: 3 for, 1 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Automatic HTTPS and easy configuration
From 3 comments
Caddy is absolutely amazing. I'm running it on an RPi that's hosting various home automation and hobby projects, all serving HTTP to the loopback interface only, with Caddy…
lxgr on HNI just used Caddy for the first time for https://lists.sh and was super impressed by the automatic TLS. The config was also 2 lines of code. Great work!
qudat on HNI remember being a newgrad at my startup it was a huge pain to get HTTPS up and running, until I ran into Caddy. Loved it!
always_left on HN
Small configs compared to nginx
From 2 comments
I just used Caddy for the first time for https://lists.sh and was super impressed by the automatic TLS. The config was also 2 lines of code. Great work!
qudat on HNCaddy's defaults usually mean your config ends up being 1/4 or less of the size of Nginx ultimately. Often the 'reverse_proxy' directive's defaults are good enough, if the app…
francislavoie on HN
Single binary and live config changes
From 1 comment
Single binary is nice, live config changes, let’s encrypt is built in.
tdhz77 on HN
Objections
Documentation is outdated and hard to use, especially for JSON config
From 3 comments
Caddy is my server/proxy of choice. It replaced Traefik, but I have one complaint. It looks like the documentation if very outdated. The examples in the official docs or…
figassis on HNIt‘s in this state since v2 has been released. You will also find either trivial examples for the simple Caddyfile format or the very complex json format. Very often I have to…
tpetry on HNCaddy is such a delight! I can't reccomend it fast enough when somebody mentions they are on nginx. Small random feedback: I like the idea of JSON configuration but most of the…
evv on HN
JSON config is hard to write and read
From 2 comments
I wish Caddy went all in on the caddyfile and dumped the JSON. The meagre examples are split between the two formats, it’s tough trying to figure out how to do something that’s…
pupppet on HNLove caddy. We use it 100% on a whole bunch of servers and products. It’s the only tool that can do what it does. But that JSON config file? It’s a mistake. And I’m Being…
eric4smith on HN
No built-in rate limiting
From 1 comment
Unfortunately it still does not come with some good rate limiting oob, I found https://github.com/mholt/caddy-ratelimit which is "work in progress" only - not clear if that is ok…
POPOSYS on HN
Performance may trail nginx in benchmarks
From 1 comment
I like the idea behind Caddy, but concerned about performance compared to nginx. Anyone got any real-world production benchmarks? One I found from 2020 shows nginx can handle…
nreece on HN
Requests
Better, more current documentation and complete JSON examples
From 2 comments
A few complete, fully working example JSON configuration files for common use cases would be really useful as well.
skrause on HNCaddy is my server/proxy of choice. It replaced Traefik, but I have one complaint. It looks like the documentation if very outdated. The examples in the official docs or…
figassis on HN
Built-in rate limiting
From 1 comment
Unfortunately it still does not come with some good rate limiting oob, I found https://github.com/mholt/caddy-ratelimit which is "work in progress" only - not clear if that is ok…
POPOSYS on HN
Consul integration for dynamic upstreams
From 1 comment
The Dynamic Upstreams feature looks good, but it doesn't seem to be as nicely integrated with Consul as Traefik is.
amanzi on HN
Questions
How dynamic upstreams and long-lived connections behave on reload
From 2 comments
Does it have implications for long-lived connections like SSE and websockets? It seems like restarts would have been disruptive to those but now might not be?
paulgb on HNPossibly; the long-lived connections eventually have to end when reloads (note: restarts and reloads are different) happen, to free up resources -- otherwise they leak. (The…
mholt on HN
Whether Caddy is scriptable or has SMTP/IMAP proxying
From 2 comments
Is Caddy scriptable? I don't know much about it. But ever since I discovered nginx-lua-module and OpenResty it's been pretty much a game-changer for me. Curious if other popular…
VWWHFSfQ on HNI utterly adore your project. Thank you so much. Are there plans for SMTP or IMAP proxying? Do you do SNI proxying too? I would love for Caddy to be my one stop shop for all TLS…
gorgoiler on HN
Alternatives named
nginx
From 2 comments
Setting that up with nginx and acme.sh is pretty easy as well. One benefit I found with using nginx is that services are more likely to have nginx proxy example configs, and…
okasaki on HNI'm a heavy nginx user - there's not much that I haven't already done with it and I know the documentation quite well. Why would someone like me change to Caddy? I can see there…
sgt on HN
Traefik
From 2 comments
Caddy is my server/proxy of choice. It replaced Traefik, but I have one complaint. It looks like the documentation if very outdated. The examples in the official docs or…
figassis on HNBack in the days, there was an issue with caddy regarding having to pay for it if you bundle some plugins with it. I can't remember now - must have been years ago. This is why I…
number6 on HN