{"slug": "caddy", "name": "Caddy", "category": "networking", "category_name": "Networking and VPN", "description": "Open-source web server and reverse proxy written in Go with automatic HTTPS.", "recommenders": 15, "commenters": 32, "warners": 1, "score": 16.823, "rising": 1.73, "first": "2025-11-06", "latest": "2026-10-27", "why": "HN commenters use it as a reverse proxy in front of self-hosted services and containers, value its automatic SSL handling, and say it just works on small VPSes.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 15, "neutral": 18, "compare": 1, "warn": 1}, "spark": [2, 1, 1, 1, 2, 1, 1, 0, 1, 1, 2, 2], "listed": true, "loved": ["Reverse proxy", "Automatic SSL"], "caveat": "Default behavior", "short_quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://caddyserver.com", "pricing": "open source", "aliases": ["Caddy"], "verdict": [{"text": "HN commenters use it as a reverse proxy in front of self-hosted services and containers", "cites": [{"id": 796124961, "item_id": 49757810, "url": "https://news.ycombinator.com/item?id=49757810", "by": "KomoD", "date": "2026-09-18", "stance": "recommend", "quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "excerpt": "I don't really want to use Cloudflare anymore, and they have some restrictions that don't really work for me, e.g. 100MB max file upload size. Authelia wasn't too difficult to set up and manage. I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "context": "self-hoster", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What self-hosted apps do you use daily?"}, {"id": 771669584, "item_id": 48229349, "url": "https://news.ycombinator.com/item?id=48229349", "by": "tracker1", "date": "2026-05-21", "stance": "recommend", "quote": "I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage.", "excerpt": "Personally, I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage. If it's a straight website, I'll let Caddy serve the contents directly... for \"web apps\" I'll pretty much containerize all the things and use caddy for TLS termination and reverse-proxy duties to the app running under Docker... Mostly ~/apps/appname, where each appname has a docker compose file, and the data dir", "context": "personal/hobby usage", "use_case": "web server and TLS reverse proxy", "switched_from": "", "story": "Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD"}, {"id": 739487232, "item_id": 46217952, "url": "https://news.ycombinator.com/item?id=46217952", "by": "RandyOrion", "date": "2025-12-10", "stance": "recommend", "quote": "the caddy package from pacman just works", "excerpt": "Well, I use Arch Linux and the caddy package from pacman just works. You may checkout https://github.com/caddyserver/xcaddy for custom caddy build. Besides, I don't use wildcard certs. I use caddy to reverse proxy a number of self-hosting things, and manually assign domain names to each of them. Caddy can handles many certs just fine.", "context": "self-hoster on Arch Linux", "use_case": "reverse proxy for self-hosted services", "switched_from": "", "story": "10 Years of Let's Encrypt"}, {"id": 749523457, "item_id": 46845216, "url": "https://news.ycombinator.com/item?id=46845216", "by": "edentrey", "date": "2026-02-01", "stance": "recommend", "quote": "Caddy handles the SSL and routes everything to the right containers.", "excerpt": "Tailscale is the only non-self-hosted part of my setup now and this has bugged me since. I use a custom Nameserver rule to point all my subdomains to a Caddy container sitting on my Tailnet. Caddy handles the SSL and routes everything to the right containers. I skipped Tailscale Funnel on purpose; since these are just family services, I\u2019d rather keep them locked behind the VPN than open them up to the web. This proje", "context": "", "use_case": "reverse proxy and SSL", "switched_from": "", "story": "Netbird a German Tailscale alternative (P2P WireGuard-based overlay network)"}]}, {"text": ", value its automatic SSL handling", "cites": [{"id": 758764768, "item_id": 47422798, "url": "https://news.ycombinator.com/item?id=47422798", "by": "nicbou", "date": "2026-03-18", "stance": "recommend", "quote": "One notable exception is caddy and automatic SSL.", "excerpt": "I have two fucking websites. One I live from. These days, it's pretty demoralising to run a website. Google AI overviews and LLMs have reduced traffic by over 60%, and that trend shows no sign of slowing down. These numbers are typical. At the same time, the cost and difficulty has raised because of misbehaving AI crawlers and bots attacking every moving part. I'm glad I went with static sites and not WordPress. So y", "context": "Runs websites, used to make websites for businesses", "use_case": "web server with automatic SSL", "switched_from": "", "story": "Have a Fucking Website"}, {"id": 735173584, "item_id": 45948349, "url": "https://news.ycombinator.com/item?id=45948349", "by": "lewis1028282", "date": "2025-11-16", "stance": "recommend", "quote": "Caddy supports socket binding, and can handle SSL certs.", "excerpt": "I use socket activation instead of running reverse proxy with `CAP_NET_BIND`. Caddy supports socket binding, and can handle SSL certs. I now just log-in every week or so and run `journalctl --user -f --since \"2025-11-09\" --grep \"error\"` to check for anything going on. https://github.com/eriksjolund/podman-caddy-socket-activation/tree/main/examples/example4", "context": "", "use_case": "reverse proxy with socket activation", "switched_from": "", "story": "Production-Grade Container Deployment with Podman Quadlets \u2013 Larvitz Blog"}, {"id": 799461377, "item_id": 49966336, "url": "https://news.ycombinator.com/item?id=49966336", "by": "stego-tech", "date": "2026-10-05", "stance": "recommend", "quote": "The Caddy container handling certificates and reverse proxies for everything.", "excerpt": "Man, I\u2019ve felt this way for decades now. It\u2019s a constant fight just to accomplish basic utility without divulging everything short of your genetic code to hundreds of \u201cpartners\u201d in the process. It\u2019s at the point that I spend more time trying to get relatives off tech entirely instead of helping them utilize it to improve their lives, for the simple reason tech doesn\u2019t improve life right now, at least not for a lot of", "context": "self-hosts services", "use_case": "certificates and reverse proxy", "switched_from": "", "story": "\"I'm Embarrassed on Behalf of the Tech Industry\""}]}, {"text": ", and say it just works on small VPSes.", "cites": [{"id": 796124961, "item_id": 49757810, "url": "https://news.ycombinator.com/item?id=49757810", "by": "KomoD", "date": "2026-09-18", "stance": "recommend", "quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "excerpt": "I don't really want to use Cloudflare anymore, and they have some restrictions that don't really work for me, e.g. 100MB max file upload size. Authelia wasn't too difficult to set up and manage. I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "context": "self-hoster", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What self-hosted apps do you use daily?"}, {"id": 739487232, "item_id": 46217952, "url": "https://news.ycombinator.com/item?id=46217952", "by": "RandyOrion", "date": "2025-12-10", "stance": "recommend", "quote": "the caddy package from pacman just works", "excerpt": "Well, I use Arch Linux and the caddy package from pacman just works. You may checkout https://github.com/caddyserver/xcaddy for custom caddy build. Besides, I don't use wildcard certs. I use caddy to reverse proxy a number of self-hosting things, and manually assign domain names to each of them. Caddy can handles many certs just fine.", "context": "self-hoster on Arch Linux", "use_case": "reverse proxy for self-hosted services", "switched_from": "", "story": "10 Years of Let's Encrypt"}, {"id": 734938976, "item_id": 45933686, "url": "https://news.ycombinator.com/item?id=45933686", "by": "p2detar", "date": "2025-11-14", "stance": "recommend", "quote": "Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS.", "excerpt": "I recently finished my first ever side gig in Go - a web platform that organizes business processes between multiple actors. Got paid and more feature requests are coming in. Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS. I love Go.", "context": "", "use_case": "web server front end", "switched_from": "", "story": "Go's Sweet 16"}]}, {"text": " Complaints are few: one commenter says it misbehaves out of the box", "cites": [{"id": 769306576, "item_id": 48081661, "url": "https://news.ycombinator.com/item?id=48081661", "by": "chrismorgan", "date": "2026-05-10", "stance": "warn", "quote": "Caddy misbehaves out of the box", "excerpt": "You\u2019re misreading a couple of things. There\u2019s no violation of common convention where you\u2019re pointing. Where dealing with static file servers: For URLs that are supposed to include a trailing slash and the server will find that directory and serve its index.html: it\u2019s customary, though not ubiquitous, to redirect from no-slash to slash. (Some, including popular commercial services, serve the index.html file instead o", "context": "runs personal website chrismorgan.info", "use_case": "web server for personal site", "switched_from": "", "story": "I Will Not Add Query Strings to Your URLs"}]}, {"text": ", and another questions its history of vulnerabilities.", "cites": [{"id": 770225953, "item_id": 48139122, "url": "https://news.ycombinator.com/item?id=48139122", "by": "ptx", "date": "2026-05-14", "stance": "compare", "quote": "Caddy (written in Go) but they seem to have a history of vulnerabilities of other types", "excerpt": "Is there a good alternative to Apache and Nginx that's written in a memory safe language and not full of security holes? I briefly looked at Jetty (written in Java) and Caddy (written in Go) but they seem to have a history of vulnerabilities of other types (e.g. shell injection in Jetty) so I'm not sure they would be any better.", "context": "", "use_case": "web server", "switched_from": "", "story": "New Nginx Exploit"}]}], "praise": [{"label": "Reverse proxy", "summary": "Commenters put it in front of self-hosted apps and Docker containers to route traffic to each service.", "quotes": [{"id": 796124961, "item_id": 49757810, "url": "https://news.ycombinator.com/item?id=49757810", "by": "KomoD", "date": "2026-09-18", "stance": "recommend", "quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "excerpt": "I don't really want to use Cloudflare anymore, and they have some restrictions that don't really work for me, e.g. 100MB max file upload size. Authelia wasn't too difficult to set up and manage. I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "context": "self-hoster", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What self-hosted apps do you use daily?"}, {"id": 771669584, "item_id": 48229349, "url": "https://news.ycombinator.com/item?id=48229349", "by": "tracker1", "date": "2026-05-21", "stance": "recommend", "quote": "I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage.", "excerpt": "Personally, I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage. If it's a straight website, I'll let Caddy serve the contents directly... for \"web apps\" I'll pretty much containerize all the things and use caddy for TLS termination and reverse-proxy duties to the app running under Docker... Mostly ~/apps/appname, where each appname has a docker compose file, and the data dir", "context": "personal/hobby usage", "use_case": "web server and TLS reverse proxy", "switched_from": "", "story": "Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD"}, {"id": 800258129, "item_id": 50016133, "url": "https://news.ycombinator.com/item?id=50016133", "by": "ahf8Aithaex7Nai", "date": "2026-10-09", "stance": "neutral", "quote": "Caddy runs on the VPS with one proxy line per service.", "excerpt": "I use Yggdrasil [0] to connect my computers. This ensures they are always connected within a flat, private IPv6 namespace. However, two computers cannot find each other if they are both behind NAT on different networks. At least one of them must be reachable by the other via TCP. That\u2019s why I use the cheapest VPS I could find as a globally accessible Yggdrasil hub. I\u2019ve been running it this way for many years now, an", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}]}, {"label": "Automatic SSL", "summary": "Commenters say it handles certificates and TLS termination for them.", "quotes": [{"id": 758764768, "item_id": 47422798, "url": "https://news.ycombinator.com/item?id=47422798", "by": "nicbou", "date": "2026-03-18", "stance": "recommend", "quote": "One notable exception is caddy and automatic SSL.", "excerpt": "I have two fucking websites. One I live from. These days, it's pretty demoralising to run a website. Google AI overviews and LLMs have reduced traffic by over 60%, and that trend shows no sign of slowing down. These numbers are typical. At the same time, the cost and difficulty has raised because of misbehaving AI crawlers and bots attacking every moving part. I'm glad I went with static sites and not WordPress. So y", "context": "Runs websites, used to make websites for businesses", "use_case": "web server with automatic SSL", "switched_from": "", "story": "Have a Fucking Website"}, {"id": 749523457, "item_id": 46845216, "url": "https://news.ycombinator.com/item?id=46845216", "by": "edentrey", "date": "2026-02-01", "stance": "recommend", "quote": "Caddy handles the SSL and routes everything to the right containers.", "excerpt": "Tailscale is the only non-self-hosted part of my setup now and this has bugged me since. I use a custom Nameserver rule to point all my subdomains to a Caddy container sitting on my Tailnet. Caddy handles the SSL and routes everything to the right containers. I skipped Tailscale Funnel on purpose; since these are just family services, I\u2019d rather keep them locked behind the VPN than open them up to the web. This proje", "context": "", "use_case": "reverse proxy and SSL", "switched_from": "", "story": "Netbird a German Tailscale alternative (P2P WireGuard-based overlay network)"}, {"id": 735173584, "item_id": 45948349, "url": "https://news.ycombinator.com/item?id=45948349", "by": "lewis1028282", "date": "2025-11-16", "stance": "recommend", "quote": "Caddy supports socket binding, and can handle SSL certs.", "excerpt": "I use socket activation instead of running reverse proxy with `CAP_NET_BIND`. Caddy supports socket binding, and can handle SSL certs. I now just log-in every week or so and run `journalctl --user -f --since \"2025-11-09\" --grep \"error\"` to check for anything going on. https://github.com/eriksjolund/podman-caddy-socket-activation/tree/main/examples/example4", "context": "", "use_case": "reverse proxy with socket activation", "switched_from": "", "story": "Production-Grade Container Deployment with Podman Quadlets \u2013 Larvitz Blog"}]}, {"label": "Just works", "summary": "Several commenters report that it works with little effort.", "quotes": [{"id": 796124961, "item_id": 49757810, "url": "https://news.ycombinator.com/item?id=49757810", "by": "KomoD", "date": "2026-09-18", "stance": "recommend", "quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "excerpt": "I don't really want to use Cloudflare anymore, and they have some restrictions that don't really work for me, e.g. 100MB max file upload size. Authelia wasn't too difficult to set up and manage. I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "context": "self-hoster", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What self-hosted apps do you use daily?"}, {"id": 739487232, "item_id": 46217952, "url": "https://news.ycombinator.com/item?id=46217952", "by": "RandyOrion", "date": "2025-12-10", "stance": "recommend", "quote": "the caddy package from pacman just works", "excerpt": "Well, I use Arch Linux and the caddy package from pacman just works. You may checkout https://github.com/caddyserver/xcaddy for custom caddy build. Besides, I don't use wildcard certs. I use caddy to reverse proxy a number of self-hosting things, and manually assign domain names to each of them. Caddy can handles many certs just fine.", "context": "self-hoster on Arch Linux", "use_case": "reverse proxy for self-hosted services", "switched_from": "", "story": "10 Years of Let's Encrypt"}, {"id": 759161456, "item_id": 47447591, "url": "https://news.ycombinator.com/item?id=47447591", "by": "samgranieri", "date": "2026-03-19", "stance": "recommend", "quote": "These days I\u2019m just using Caddy to do ..localhost for my web dev and it works like a charm.", "excerpt": "I used to use dnsmasq and etc/resolvers for stuff like dot dev or dit whatever back in the day. These days I\u2019m just using Caddy to do ..localhost for my web dev and it works like a charm. This is exceptionally sloppy on Apple\u2019s part.", "context": "web developer", "use_case": "local web dev domains", "switched_from": "dnsmasq", "story": "macOS 26 breaks custom DNS settings including .internal"}]}, {"label": "Cheap VPS hosting", "summary": "Commenters run it on small, low-cost VPSes without problems.", "quotes": [{"id": 734938976, "item_id": 45933686, "url": "https://news.ycombinator.com/item?id=45933686", "by": "p2detar", "date": "2025-11-14", "stance": "recommend", "quote": "Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS.", "excerpt": "I recently finished my first ever side gig in Go - a web platform that organizes business processes between multiple actors. Got paid and more feature requests are coming in. Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS. I love Go.", "context": "", "use_case": "web server front end", "switched_from": "", "story": "Go's Sweet 16"}, {"id": 783418545, "item_id": 48963659, "url": "https://news.ycombinator.com/item?id=48963659", "by": "doawoo", "date": "2026-07-18", "stance": "recommend", "quote": "I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server", "excerpt": "Yup, I have a similar setup where I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server, which proxies the traffic to the server under my own roof. No Cloudflare!", "context": "self-hosts a server at home", "use_case": "public reverse proxy", "switched_from": "", "story": "Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day"}, {"id": 799845683, "item_id": 49990355, "url": "https://news.ycombinator.com/item?id=49990355", "by": "jdboyd", "date": "2026-10-07", "stance": "neutral", "quote": "Run caddy for ssl termination and reverse proxying the other services running here.", "excerpt": "Here are a few things I do: Host static content behind nginx Run filestash as a partial GoogleDrive replacement (I use it for sharing files with other people, like deliverables), files place on an S3 compatible object store. Run vaultwarder for myself and some family members. Run a container registry service backed by an s3 compatible object store. Run a django web application I wrote for my own use. However, it stor", "context": "runs a $5 VPS", "use_case": "SSL termination, reverse proxy", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}]}, {"label": "Private networks", "summary": "It pairs with Tailscale or WireGuard setups to keep services private or tunnel traffic home.", "quotes": [{"id": 793867040, "item_id": 49616690, "url": "https://news.ycombinator.com/item?id=49616690", "by": "unshavedyak", "date": "2026-09-08", "stance": "recommend", "quote": "I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "excerpt": "> There is a Caddy extension for doing DNS based validation, but that puts you back to needing a DNS provider with an API. Yea, for clarity this is what i was describing. I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "context": "", "use_case": "reverse proxy with DNS validation", "switched_from": "", "story": "Jellyfin 12.0"}, {"id": 783418545, "item_id": 48963659, "url": "https://news.ycombinator.com/item?id=48963659", "by": "doawoo", "date": "2026-07-18", "stance": "recommend", "quote": "I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server", "excerpt": "Yup, I have a similar setup where I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server, which proxies the traffic to the server under my own roof. No Cloudflare!", "context": "self-hosts a server at home", "use_case": "public reverse proxy", "switched_from": "", "story": "Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day"}, {"id": 749523457, "item_id": 46845216, "url": "https://news.ycombinator.com/item?id=46845216", "by": "edentrey", "date": "2026-02-01", "stance": "recommend", "quote": "Caddy handles the SSL and routes everything to the right containers.", "excerpt": "Tailscale is the only non-self-hosted part of my setup now and this has bugged me since. I use a custom Nameserver rule to point all my subdomains to a Caddy container sitting on my Tailnet. Caddy handles the SSL and routes everything to the right containers. I skipped Tailscale Funnel on purpose; since these are just family services, I\u2019d rather keep them locked behind the VPN than open them up to the web. This proje", "context": "", "use_case": "reverse proxy and SSL", "switched_from": "", "story": "Netbird a German Tailscale alternative (P2P WireGuard-based overlay network)"}]}, {"label": "Static sites", "summary": "Commenters use it to serve static websites directly.", "quotes": [{"id": 804248256, "item_id": 50265516, "url": "https://news.ycombinator.com/item?id=50265516", "by": "benstigsen", "date": "2026-10-27", "stance": "recommend", "quote": "The static site is then served with Caddy.", "excerpt": "I've tried so many things over the years, my own webservers with Python and Go, my own templating systems, various markdown converters, different SSGs (Astro, Hugo, Zola, Lume), in the end I've always found markdown limiting, when it comes to structuring and formatting content. Now I use a git repository with a simple git hook, which runs a tiny bash script on commit, allowing for basic HTML templating. The static si", "context": "runs personal website", "use_case": "serving static site", "switched_from": "", "story": "Removing Next.js Got My Blog to 100 on Every Lighthouse Category"}, {"id": 771669584, "item_id": 48229349, "url": "https://news.ycombinator.com/item?id=48229349", "by": "tracker1", "date": "2026-05-21", "stance": "recommend", "quote": "I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage.", "excerpt": "Personally, I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage. If it's a straight website, I'll let Caddy serve the contents directly... for \"web apps\" I'll pretty much containerize all the things and use caddy for TLS termination and reverse-proxy duties to the app running under Docker... Mostly ~/apps/appname, where each appname has a docker compose file, and the data dir", "context": "personal/hobby usage", "use_case": "web server and TLS reverse proxy", "switched_from": "", "story": "Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD"}]}], "caveats": [{"label": "Default behavior", "summary": "One commenter says it misbehaves out of the box, in a discussion of static file server URL redirects.", "quotes": [{"id": 769306576, "item_id": 48081661, "url": "https://news.ycombinator.com/item?id=48081661", "by": "chrismorgan", "date": "2026-05-10", "stance": "warn", "quote": "Caddy misbehaves out of the box", "excerpt": "You\u2019re misreading a couple of things. There\u2019s no violation of common convention where you\u2019re pointing. Where dealing with static file servers: For URLs that are supposed to include a trailing slash and the server will find that directory and serve its index.html: it\u2019s customary, though not ubiquitous, to redirect from no-slash to slash. (Some, including popular commercial services, serve the index.html file instead o", "context": "runs personal website chrismorgan.info", "use_case": "web server for personal site", "switched_from": "", "story": "I Will Not Add Query Strings to Your URLs"}]}, {"label": "Security history", "summary": "One commenter notes it seems to have a history of vulnerabilities, despite being written in Go.", "quotes": [{"id": 770225953, "item_id": 48139122, "url": "https://news.ycombinator.com/item?id=48139122", "by": "ptx", "date": "2026-05-14", "stance": "compare", "quote": "Caddy (written in Go) but they seem to have a history of vulnerabilities of other types", "excerpt": "Is there a good alternative to Apache and Nginx that's written in a memory safe language and not full of security holes? I briefly looked at Jetty (written in Java) and Caddy (written in Go) but they seem to have a history of vulnerabilities of other types (e.g. shell injection in Jetty) so I'm not sure they would be any better.", "context": "", "use_case": "web server", "switched_from": "", "story": "New Nginx Exploit"}]}, {"label": "DNS validation", "summary": "DNS-based certificate validation requires an extension and a DNS provider with an API.", "quotes": [{"id": 793867040, "item_id": 49616690, "url": "https://news.ycombinator.com/item?id=49616690", "by": "unshavedyak", "date": "2026-09-08", "stance": "recommend", "quote": "I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "excerpt": "> There is a Caddy extension for doing DNS based validation, but that puts you back to needing a DNS provider with an API. Yea, for clarity this is what i was describing. I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "context": "", "use_case": "reverse proxy with DNS validation", "switched_from": "", "story": "Jellyfin 12.0"}]}], "who": [{"by": "benstigsen", "context": "runs personal website", "url": "https://news.ycombinator.com/item?id=50265516", "date": "2026-10-27"}, {"by": "jdboyd", "context": "runs a $5 VPS", "url": "https://news.ycombinator.com/item?id=49990355", "date": "2026-10-07"}, {"by": "stego-tech", "context": "self-hosts services", "url": "https://news.ycombinator.com/item?id=49966336", "date": "2026-10-05"}, {"by": "KomoD", "context": "self-hoster", "url": "https://news.ycombinator.com/item?id=49757810", "date": "2026-09-18"}, {"by": "danielnexaaly", "context": "AI-assisted technical operator", "url": "https://news.ycombinator.com/item?id=49251761", "date": "2026-08-10"}, {"by": "doawoo", "context": "self-hosts a server at home", "url": "https://news.ycombinator.com/item?id=48963659", "date": "2026-07-18"}, {"by": "tracker1", "context": "personal/hobby usage", "url": "https://news.ycombinator.com/item?id=48229349", "date": "2026-05-21"}, {"by": "samgranieri", "context": "web developer", "url": "https://news.ycombinator.com/item?id=47447591", "date": "2026-03-19"}, {"by": "nicbou", "context": "Runs websites, used to make websites for businesses", "url": "https://news.ycombinator.com/item?id=47422798", "date": "2026-03-18"}, {"by": "iamartech", "context": "systems software engineer job seeker", "url": "https://news.ycombinator.com/item?id=47305189", "date": "2026-03-08"}, {"by": "RandyOrion", "context": "self-hoster on Arch Linux", "url": "https://news.ycombinator.com/item?id=46217952", "date": "2025-12-10"}], "tags": ["for self-hosters", "for VPS hosting", "for Docker setups", "for static sites", "for local web dev"], "use_cases": ["reverse proxy", "reverse proxy and ssl", "serving static site", "serving media server publicly", "ssl termination, reverse proxy", "certificates and reverse proxy"], "compared": [{"slug": "tailscale", "name": "Tailscale", "co": 6, "switched_from": 0, "switched_to": 0}, {"slug": "nginx", "name": "nginx", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "jellyfin", "name": "Jellyfin", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "docker", "name": "Docker", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "immich", "name": "Immich", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "cloudflare-tunnel", "name": "Cloudflare Tunnel", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "docker-compose", "name": "Docker Compose", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49985548", "title": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48449187", "title": "Ask HN: What are tools you have made for yourself since the advent of AI", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50237712", "title": "Removing Next.js Got My Blog to 100 on Every Lighthouse Category", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=50152321", "title": "Plex vulnerabilities being exploited in the wild to drop a cryptominer", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49965497", "title": "\"I'm Embarrassed on Behalf of the Tech Industry\"", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49746527", "title": "Ask HN: What self-hosted apps do you use daily?", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 2}, "2025-12": {"neutral": 3, "recommend": 1}, "2026-01": {"recommend": 1}, "2026-02": {"recommend": 1, "neutral": 1}, "2026-03": {"neutral": 1, "recommend": 2}, "2026-04": {"recommend": 1}, "2026-05": {"warn": 1, "compare": 1, "recommend": 1, "neutral": 1}, "2026-06": {"neutral": 4}, "2026-07": {"neutral": 1, "recommend": 1}, "2026-08": {"recommend": 1, "neutral": 1}, "2026-09": {"recommend": 2, "neutral": 1}, "2026-10": {"recommend": 2, "neutral": 4}}, "quotes": [{"id": 804248256, "item_id": 50265516, "url": "https://news.ycombinator.com/item?id=50265516", "by": "benstigsen", "date": "2026-10-27", "stance": "recommend", "quote": "The static site is then served with Caddy.", "excerpt": "I've tried so many things over the years, my own webservers with Python and Go, my own templating systems, various markdown converters, different SSGs (Astro, Hugo, Zola, Lume), in the end I've always found markdown limiting, when it comes to structuring and formatting content. Now I use a git repository with a simple git hook, which runs a tiny bash script on commit, allowing for basic HTML templating. The static si", "context": "runs personal website", "use_case": "serving static site", "switched_from": "", "story": "Removing Next.js Got My Blog to 100 on Every Lighthouse Category"}, {"id": 802614227, "item_id": 50163389, "url": "https://news.ycombinator.com/item?id=50163389", "by": "aurmc", "date": "2026-10-20", "stance": "neutral", "quote": "So now it\u2019s just a public URL served up with Caddy.", "excerpt": "Me. Or I did back when I used it. Now I\u2019m on Jellyfin but the point is the same. I share my Plex/Jellyfin with a couple dozen friends and family members, all of varying levels of technical knowledge. \u201cInstall an app called Jellyfin on your smart TV\u201d is complicated enough for most people. \u201cAlso search for another app called Tailscale and now log in with my credentials, yes it\u2019s going to ask for control over your devic", "context": "", "use_case": "serving media server publicly", "switched_from": "", "story": "Plex vulnerabilities being exploited in the wild to drop a cryptominer"}, {"id": 800375046, "item_id": 50023440, "url": "https://news.ycombinator.com/item?id=50023440", "by": "Semaphor", "date": "2026-10-09", "stance": "neutral", "quote": "my caddy lxc has 2 IPs, one port forwarded one internal only", "excerpt": "Cheap Vps: mainly seafile (file sync) and prosody (jabber/xmpp). I want those always available from everywhere. Living room has a small passively cooled n150 which runs almost 20 services, from home assistant and jellyfin, over paperless and navidrome, to some lesser known services (yamtrack, koito, grimoire). A bunch more, and I use them regularly, some more than others, but then adding a service without exposing it", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}, {"id": 800258129, "item_id": 50016133, "url": "https://news.ycombinator.com/item?id=50016133", "by": "ahf8Aithaex7Nai", "date": "2026-10-09", "stance": "neutral", "quote": "Caddy runs on the VPS with one proxy line per service.", "excerpt": "I use Yggdrasil [0] to connect my computers. This ensures they are always connected within a flat, private IPv6 namespace. However, two computers cannot find each other if they are both behind NAT on different networks. At least one of them must be reachable by the other via TCP. That\u2019s why I use the cheapest VPS I could find as a globally accessible Yggdrasil hub. I\u2019ve been running it this way for many years now, an", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}, {"id": 799845683, "item_id": 49990355, "url": "https://news.ycombinator.com/item?id=49990355", "by": "jdboyd", "date": "2026-10-07", "stance": "neutral", "quote": "Run caddy for ssl termination and reverse proxying the other services running here.", "excerpt": "Here are a few things I do: Host static content behind nginx Run filestash as a partial GoogleDrive replacement (I use it for sharing files with other people, like deliverables), files place on an S3 compatible object store. Run vaultwarder for myself and some family members. Run a container registry service backed by an s3 compatible object store. Run a django web application I wrote for my own use. However, it stor", "context": "runs a $5 VPS", "use_case": "SSL termination, reverse proxy", "switched_from": "", "story": "Ask HN: What do you run on a $5 VPS that's worth keeping online 24/7?"}, {"id": 799461377, "item_id": 49966336, "url": "https://news.ycombinator.com/item?id=49966336", "by": "stego-tech", "date": "2026-10-05", "stance": "recommend", "quote": "The Caddy container handling certificates and reverse proxies for everything.", "excerpt": "Man, I\u2019ve felt this way for decades now. It\u2019s a constant fight just to accomplish basic utility without divulging everything short of your genetic code to hundreds of \u201cpartners\u201d in the process. It\u2019s at the point that I spend more time trying to get relatives off tech entirely instead of helping them utilize it to improve their lives, for the simple reason tech doesn\u2019t improve life right now, at least not for a lot of", "context": "self-hosts services", "use_case": "certificates and reverse proxy", "switched_from": "", "story": "\"I'm Embarrassed on Behalf of the Tech Industry\""}, {"id": 796124961, "item_id": 49757810, "url": "https://news.ycombinator.com/item?id=49757810", "by": "KomoD", "date": "2026-09-18", "stance": "recommend", "quote": "I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "excerpt": "I don't really want to use Cloudflare anymore, and they have some restrictions that don't really work for me, e.g. 100MB max file upload size. Authelia wasn't too difficult to set up and manage. I expose my services with a Caddy reverse proxy on a VPS, with Authelia in front, and so far it basically just works.", "context": "self-hoster", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: What self-hosted apps do you use daily?"}, {"id": 795846995, "item_id": 49740437, "url": "https://news.ycombinator.com/item?id=49740437", "by": "capydev42", "date": "2026-09-17", "stance": "neutral", "quote": "everything running on a Hetzner VPS behind Caddy", "excerpt": "Hi there, I am the creator of DrillFlow, I would like to share my thoughts behind the creation of DrillFlow. Nowadays my job shifted from implementing of solutions to planning/understanding/explaining software solutions. So i got used to create diagrams on the fly while explaining or listening to others. My problem was to fit the most important abstractions and also details on the same canvas and keep it still readab", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "Show HN: DrillFlow \u2013 a diagram editor where every node opens into a sub-diagram"}, {"id": 793867040, "item_id": 49616690, "url": "https://news.ycombinator.com/item?id=49616690", "by": "unshavedyak", "date": "2026-09-08", "stance": "recommend", "quote": "I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "excerpt": "> There is a Caddy extension for doing DNS based validation, but that puts you back to needing a DNS provider with an API. Yea, for clarity this is what i was describing. I use Porkbun's API and the Caddy instance isn't reachable from the internet, only local and over tailscale", "context": "", "use_case": "reverse proxy with DNS validation", "switched_from": "", "story": "Jellyfin 12.0"}, {"id": 788028177, "item_id": 49251761, "url": "https://news.ycombinator.com/item?id=49251761", "by": "danielnexaaly", "date": "2026-08-10", "stance": "neutral", "quote": "Caddy route isolation", "excerpt": "Location: Herning, Denmark (UTC+2) Remote: Yes Willing to relocate: Not listing relocation availability at this time Technologies: Linux, JavaScript/Node.js, Git, Docker, HTTP/APIs, browser automation, MCP, Caddy, Stripe, Codex CLI, Claude Code, Qwen Resume/CV: https://www.linkedin.com/in/daniel-abildgaard-376032190/ Portfolio: https://nexaaly.com/bug-hunt/sample/ and https://github.com/AccessNexaaly Email: access@ne", "context": "AI-assisted technical operator", "use_case": "route isolation", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 787493198, "item_id": 49218324, "url": "https://news.ycombinator.com/item?id=49218324", "by": "ragequittah", "date": "2026-08-07", "stance": "recommend", "quote": "Most of the stuff I use is free and excellent.", "excerpt": "Most of the stuff I use is free and excellent. Linux, Firefox, libreoffice, xcp-ng, bottles, steam, playnite, opnsense, docker, dockhand, immich, freshrss, obsidian, tailscale, calibre, caddy, docker, pi-hole, signal, audiobookshelf I could probably keep going for a long while. I'm very glad most good software creators I've come across do not have your mindset.", "context": "", "use_case": "", "switched_from": "", "story": "Improving GPT-5.6 Sol in ChatGPT\u2014and expanding access for free users"}, {"id": 783418545, "item_id": 48963659, "url": "https://news.ycombinator.com/item?id=48963659", "by": "doawoo", "date": "2026-07-18", "stance": "recommend", "quote": "I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server", "excerpt": "Yup, I have a similar setup where I use a Wireguard VPN to tunnel traffic to a tiny public facing Caddy server, which proxies the traffic to the server under my own roof. No Cloudflare!", "context": "self-hosts a server at home", "use_case": "public reverse proxy", "switched_from": "", "story": "Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day"}, {"id": 781458418, "item_id": 48841151, "url": "https://news.ycombinator.com/item?id=48841151", "by": "mybbor", "date": "2026-07-08", "stance": "neutral", "quote": "I built it using a DO VPS and Caddy in the backend.", "excerpt": "I co-founded a page builder for WordPress. Myself and my co-founders would joke about the \"friends and family\" problem. When friends or family asked us to help build their website, we usually pointed them away from our tool+WordPress for something simpler. It's nice to see more options out there that reduce the friction from someone with an idea to something published and sharable. Several weeks ago, I got frustrated", "context": "", "use_case": "web server backend", "switched_from": "", "story": "Cloudflare Drop"}, {"id": 776787378, "item_id": 48549211, "url": "https://news.ycombinator.com/item?id=48549211", "by": "packetlost", "date": "2026-06-15", "stance": "neutral", "quote": "I use NixOS with nginx + acme / caddy, coredns and no docker anywhere.", "excerpt": "I use NixOS with nginx + acme / caddy, coredns and no docker anywhere. It's extremely homogeneous, easy to scale out (add another flake output, deploy to a new server, update DNS records). You could easily automate some of that with more nix, but I don't bother because that's already only like 50 lines of config. I have a strong preference for renting bare metal and it has served me extremely well.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "What job interviews taught me about Kubernetes"}, {"id": 776139892, "item_id": 48508743, "url": "https://news.ycombinator.com/item?id=48508743", "by": "nihakue", "date": "2026-06-12", "stance": "neutral", "quote": "a caddy reverse proxy so I can also host a little starter app", "excerpt": "https://www.robinsloan.com/notes/home-cooked-app/ This has never been truer than right now. What we need isn't app store ecoystems but to eliminate the friction for distributing apps to your inner circle. We're entering the WhatsApp era of software, where everyone is going to be using a home cooked version of every piece of software that can conceivably exist on an island, and it's going to be a vibe coded mess, but ", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "I Am Not a Reverse Centaur"}, {"id": 775341602, "item_id": 48458850, "url": "https://news.ycombinator.com/item?id=48458850", "by": "zaptheimpaler", "date": "2026-06-09", "stance": "neutral", "quote": "deploy it either to my internal Caddy", "excerpt": "I made a little tool where I can just drop HTML into a folder and it will deploy it either to my internal Caddy or publicly on Cloudflare based in folder. Can be a single html or a folder. https://github.com/ankitson/webby CF pages still required too much confusing clicking around on a webpage for me. This way I can just point any little report or app at a directory and done. There\u2019s others that are more server shape", "context": "", "use_case": "internal web server", "switched_from": "", "story": "Ask HN: What are tools you have made for yourself since the advent of AI"}, {"id": 775306209, "item_id": 48456638, "url": "https://news.ycombinator.com/item?id=48456638", "by": "mybbor", "date": "2026-06-08", "stance": "neutral", "quote": "It's using Caddy and running on a DO-VPS.", "excerpt": "Before agentic coding went mainstream, one of my main use cases was creating sticker designs for concerts and music festivals. Creating the stickers and giving them away was a good way to meet new people. I used OpenClaw to make a health and wellness coach agent that tracks calories and alcoholic drinks and logs it to a personal dashboard. I send it photos of my meals, and it will estimate the calories and log it. It", "context": "", "use_case": "web server for file uploader", "switched_from": "", "story": "Ask HN: What are tools you have made for yourself since the advent of AI"}, {"id": 773304849, "item_id": 48331553, "url": "https://news.ycombinator.com/item?id=48331553", "by": "faangguyindia", "date": "2026-05-29", "stance": "neutral", "quote": "Caddy in front.", "excerpt": "I've replaced all these with Go + SQLite 1. Intercom 2. Zendesk 3. Email Marketing 4. Kanban 5. Todo 6. Our billing stack 7. Our issue tracker 8. Our forum 9. Uptime monitor 10. PagerDuty (clone) I've dozens of products I sell. So, I thought why not roll out everything on your own? All of these are on the same server and take very little memory. And I replaced all the SaaS we used to use with these. Also, moved to a ", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "SQLite is all you need for durable workflows"}, {"id": 771669584, "item_id": 48229349, "url": "https://news.ycombinator.com/item?id=48229349", "by": "tracker1", "date": "2026-05-21", "stance": "recommend", "quote": "I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage.", "excerpt": "Personally, I've been running with Caddy in front of Docker (compose) for most of my personal/hobby usage. If it's a straight website, I'll let Caddy serve the contents directly... for \"web apps\" I'll pretty much containerize all the things and use caddy for TLS termination and reverse-proxy duties to the app running under Docker... Mostly ~/apps/appname, where each appname has a docker compose file, and the data dir", "context": "personal/hobby usage", "use_case": "web server and TLS reverse proxy", "switched_from": "", "story": "Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD"}, {"id": 770225953, "item_id": 48139122, "url": "https://news.ycombinator.com/item?id=48139122", "by": "ptx", "date": "2026-05-14", "stance": "compare", "quote": "Caddy (written in Go) but they seem to have a history of vulnerabilities of other types", "excerpt": "Is there a good alternative to Apache and Nginx that's written in a memory safe language and not full of security holes? I briefly looked at Jetty (written in Java) and Caddy (written in Go) but they seem to have a history of vulnerabilities of other types (e.g. shell injection in Jetty) so I'm not sure they would be any better.", "context": "", "use_case": "web server", "switched_from": "", "story": "New Nginx Exploit"}, {"id": 769306576, "item_id": 48081661, "url": "https://news.ycombinator.com/item?id=48081661", "by": "chrismorgan", "date": "2026-05-10", "stance": "warn", "quote": "Caddy misbehaves out of the box", "excerpt": "You\u2019re misreading a couple of things. There\u2019s no violation of common convention where you\u2019re pointing. Where dealing with static file servers: For URLs that are supposed to include a trailing slash and the server will find that directory and serve its index.html: it\u2019s customary, though not ubiquitous, to redirect from no-slash to slash. (Some, including popular commercial services, serve the index.html file instead o", "context": "runs personal website chrismorgan.info", "use_case": "web server for personal site", "switched_from": "", "story": "I Will Not Add Query Strings to Your URLs"}, {"id": 761655312, "item_id": 47603457, "url": "https://news.ycombinator.com/item?id=47603457", "by": "genewitch", "date": "2026-04-01", "stance": "recommend", "quote": "i used Caddy to \"output its own access log\"", "excerpt": "i had this issue, with an even more wild set of restrictions, so i used Caddy to \"output its own access log\" and i had a cron job on any server at home that would hit that caddy server with a pre-defined key, so like `http://caddyserver.example.com/q?iamwebserver2j` for one server and \"q?iamVOIP\" for another. https://github.com/genewitch/opensource/blob/master/caddy_get-log.py https://github.com/genewitch/opensource/", "context": "", "use_case": "tracking home IP changes", "switched_from": "", "story": "I traced my traffic through a home Tailscale exit node"}, {"id": 759161456, "item_id": 47447591, "url": "https://news.ycombinator.com/item?id=47447591", "by": "samgranieri", "date": "2026-03-19", "stance": "recommend", "quote": "These days I\u2019m just using Caddy to do ..localhost for my web dev and it works like a charm.", "excerpt": "I used to use dnsmasq and etc/resolvers for stuff like dot dev or dit whatever back in the day. These days I\u2019m just using Caddy to do ..localhost for my web dev and it works like a charm. This is exceptionally sloppy on Apple\u2019s part.", "context": "web developer", "use_case": "local web dev domains", "switched_from": "dnsmasq", "story": "macOS 26 breaks custom DNS settings including .internal"}, {"id": 758764768, "item_id": 47422798, "url": "https://news.ycombinator.com/item?id=47422798", "by": "nicbou", "date": "2026-03-18", "stance": "recommend", "quote": "One notable exception is caddy and automatic SSL.", "excerpt": "I have two fucking websites. One I live from. These days, it's pretty demoralising to run a website. Google AI overviews and LLMs have reduced traffic by over 60%, and that trend shows no sign of slowing down. These numbers are typical. At the same time, the cost and difficulty has raised because of misbehaving AI crawlers and bots attacking every moving part. I'm glad I went with static sites and not WordPress. So y", "context": "Runs websites, used to make websites for businesses", "use_case": "web server with automatic SSL", "switched_from": "", "story": "Have a Fucking Website"}, {"id": 756883025, "item_id": 47305189, "url": "https://news.ycombinator.com/item?id=47305189", "by": "iamartech", "date": "2026-03-08", "stance": "neutral", "quote": "Caddy as the reverse proxy", "excerpt": "Location: New Delhi, India Remote: yes Willing to relocate: yes Technologies: Tokio, Rust lang, Golang, python, linux, concurrent programming, systems programming, databases, REST, GRPC, Git R\u00e9sum\u00e9/CV: https://docs.google.com/document/d/1cEYCjcbzGXPWnWAxLT1OHqyfeGLkwuu6aBsM1oWFJtU/edit?usp=sharing Email: ar9tech@outlook.com I am a systems software engineer specializing in low-level software design for backend systems", "context": "systems software engineer job seeker", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: Who wants to be hired? (March 2026)"}, {"id": 749848594, "item_id": 46865537, "url": "https://news.ycombinator.com/item?id=46865537", "by": "indigodaddy", "date": "2026-02-02", "stance": "neutral", "quote": "caddy on the host proxies to the container 10.x address", "excerpt": "This looks awesome! And incredibly polished. Exactly the approach I take to vibebin-- I may have to integrate yep anywhere into it (if that's ok) as an additional webui! https://github.com/jgbrwn/vibebin Although I would need it to listen on 0.0.0.0 instead of localhost because I use LXC containers so caddy on the host proxies to the container 10.x address. Hopefully yep has a startup flag for that. I saw that you ca", "context": "", "use_case": "reverse proxy to LXC containers", "switched_from": "", "story": "The Codex App"}, {"id": 749523457, "item_id": 46845216, "url": "https://news.ycombinator.com/item?id=46845216", "by": "edentrey", "date": "2026-02-01", "stance": "recommend", "quote": "Caddy handles the SSL and routes everything to the right containers.", "excerpt": "Tailscale is the only non-self-hosted part of my setup now and this has bugged me since. I use a custom Nameserver rule to point all my subdomains to a Caddy container sitting on my Tailnet. Caddy handles the SSL and routes everything to the right containers. I skipped Tailscale Funnel on purpose; since these are just family services, I\u2019d rather keep them locked behind the VPN than open them up to the web. This proje", "context": "", "use_case": "reverse proxy and SSL", "switched_from": "", "story": "Netbird a German Tailscale alternative (P2P WireGuard-based overlay network)"}, {"id": 745129808, "item_id": 46570613, "url": "https://news.ycombinator.com/item?id=46570613", "by": "codegeek", "date": "2026-01-10", "stance": "recommend", "quote": "use a reverse proxy like Caddy in front of it for SSL and actual domain.", "excerpt": "Every developer should learn the basics of Servers, Linux, VPS hosting etc. It is not that hard especially with the amount of information that's online. You mentioned Golang. For those languages, it is even easier because you literally host a single binary on the VPS. So go ahead, learn it. The naysayers will scare you into thinking that you need someone else to do it for you but you usually don't. Not unless you are", "context": "", "use_case": "reverse proxy and SSL", "switched_from": "", "story": "Ask HN: Should I learn Docker to deploy my app in VPS?"}, {"id": 740909633, "item_id": 46306852, "url": "https://news.ycombinator.com/item?id=46306852", "by": "nodesocket", "date": "2025-12-17", "stance": "neutral", "quote": "I only expose the tracking js endpoint and /api/send via Caddy publically", "excerpt": "I also run Umami, but patched once the CVE patch was released. Also, I only expose the tracking js endpoint and /api/send via Caddy publically (though, /api/send might be enough to exploit the vul). To actually interact with Umami UI I use Twingate (similar to Tailscale) to tunnel into the VPC locally.", "context": "", "use_case": "reverse proxy", "switched_from": "", "story": "I got hacked: My Hetzner server started mining Monero"}, {"id": 739487232, "item_id": 46217952, "url": "https://news.ycombinator.com/item?id=46217952", "by": "RandyOrion", "date": "2025-12-10", "stance": "recommend", "quote": "the caddy package from pacman just works", "excerpt": "Well, I use Arch Linux and the caddy package from pacman just works. You may checkout https://github.com/caddyserver/xcaddy for custom caddy build. Besides, I don't use wildcard certs. I use caddy to reverse proxy a number of self-hosting things, and manually assign domain names to each of them. Caddy can handles many certs just fine.", "context": "self-hoster on Arch Linux", "use_case": "reverse proxy for self-hosted services", "switched_from": "", "story": "10 Years of Let's Encrypt"}, {"id": 739012402, "item_id": 46188275, "url": "https://news.ycombinator.com/item?id=46188275", "by": "iamartech", "date": "2025-12-07", "stance": "neutral", "quote": "Caddy as the reverse proxy", "excerpt": "Location: New Delhi, India Remote: yes Willing to relocate: yes Technologies: Tokio, Rust lang, Golang, python, linux, concurrent programming, systems programming, databases, REST, GRPC, Git R\u00e9sum\u00e9/CV: https://docs.google.com/document/d/1cEYCjcbzGXPWnWAxLT1OHqyfeGLkwuu6aBsM1oWFJtU/edit?usp=sharing Email: ar9tech@outlook.com I am a systems software engineer specializing in low-level software design for backend systems", "context": "systems software engineer seeking work", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: Who wants to be hired? (December 2025)"}, {"id": 738748180, "item_id": 46171761, "url": "https://news.ycombinator.com/item?id=46171761", "by": "teekert", "date": "2025-12-06", "stance": "neutral", "quote": "Caddy in front of Immich to get an nice url and https", "excerpt": "I also run NixOS (btw) but opted for the container. My Docker compose setup has moved from Arch to Ubuntu to NixOS now, so I like the flexibility of that setup. I also use Tailscale, and use cloudflare as nameserver and Caddy in front of Immich to get an nice url and https. For DNS redirects I use Adguard on the tailnet, but (mostly for family) I also set some redirects in my Mikrotik hEX (E50UG). This way Immich is ", "context": "", "use_case": "reverse proxy with HTTPS", "switched_from": "", "story": "Self-hosting my photos with Immich"}, {"id": 735173584, "item_id": 45948349, "url": "https://news.ycombinator.com/item?id=45948349", "by": "lewis1028282", "date": "2025-11-16", "stance": "recommend", "quote": "Caddy supports socket binding, and can handle SSL certs.", "excerpt": "I use socket activation instead of running reverse proxy with `CAP_NET_BIND`. Caddy supports socket binding, and can handle SSL certs. I now just log-in every week or so and run `journalctl --user -f --since \"2025-11-09\" --grep \"error\"` to check for anything going on. https://github.com/eriksjolund/podman-caddy-socket-activation/tree/main/examples/example4", "context": "", "use_case": "reverse proxy with socket activation", "switched_from": "", "story": "Production-Grade Container Deployment with Podman Quadlets \u2013 Larvitz Blog"}, {"id": 734938976, "item_id": 45933686, "url": "https://news.ycombinator.com/item?id=45933686", "by": "p2detar", "date": "2025-11-14", "stance": "recommend", "quote": "Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS.", "excerpt": "I recently finished my first ever side gig in Go - a web platform that organizes business processes between multiple actors. Got paid and more feature requests are coming in. Fronted with Caddy, the whole thing runs flawlessly on a $5 VPS. I love Go.", "context": "", "use_case": "web server front end", "switched_from": "", "story": "Go's Sweet 16"}, {"id": 733446466, "item_id": 45840404, "url": "https://news.ycombinator.com/item?id=45840404", "by": "iamartech", "date": "2025-11-06", "stance": "neutral", "quote": "Caddy as the reverse proxy", "excerpt": "Location: New Delhi, India Remote: yes Willing to relocate: yes Technologies: Tokio, Rust lang, Golang, python, linux, concurrent programming, systems programming, databases, REST, GRPC, Git R\u00e9sum\u00e9/CV: https://docs.google.com/document/d/1cEYCjcbzGXPWnWAxLT1OHqyfeGLkwuu6aBsM1oWFJtU/edit?usp=sharing Email: ar9tech@outlook.com I am a systems software engineer specializing in low-level software design for backend systems", "context": "systems software engineer", "use_case": "reverse proxy", "switched_from": "", "story": "Ask HN: Who wants to be hired? (November 2025)"}]}