#caddy — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #caddy, aggregated by home.social.
-
Oh wow, I wasted an entire afternoon trying to figure out why Caddy would not issue a wildcard certificate...
All because I got confused and typed
${ENV_VAR}instead of{$ENV_VAR}in my Caddyfile... Making matters worse, I previously filtered Caddy's logs, which meant I did not see why it was failing in the first place. -
Oh wow, I wasted an entire afternoon trying to figure out why Caddy would not issue a wildcard certificate...
All because I got confused and typed
${ENV_VAR}instead of{$ENV_VAR}in my Caddyfile... Making matters worse, I previously filtered Caddy's logs, which meant I did not see why it was failing in the first place. -
I got tired of editing Caddyfiles by hand, so… I built a TUI for it. 😅
Meet **lazycaddy** 🦥
A keyboard-first terminal UI to inspect, edit and manage your Caddy configuration.
Basically: **lazygit/lazydocker, but for Caddy.**
It’s still very early, but it’s already becoming something I actually enjoy using in my homelab.
Built in Go. Open source. Contributions and bad ideas welcome. 😄
-
I got tired of editing Caddyfiles by hand, so… I built a TUI for it. 😅
Meet **lazycaddy** 🦥
A keyboard-first terminal UI to inspect, edit and manage your Caddy configuration.
Basically: **lazygit/lazydocker, but for Caddy.**
It’s still very early, but it’s already becoming something I actually enjoy using in my homelab.
Built in Go. Open source. Contributions and bad ideas welcome. 😄
-
Ditch Nginx complexity!
Master Caddy on Ubuntu 24.04 for automatic HTTPS, native WebSockets, and zero-downtime reloads.
SRE Production Blueprint:
• Cloudsmith Repo: Avoid outdated Ubuntu APT packages.
• HTTP/3 QUIC: Open UDP 443 alongside TCP 80/443 in UFW.
• No Anti-Patterns: Caddy sets X-Forwarded-For automatically.
• Zero Downtime: Use systemctl reload caddy.https://www.servermo.com/howto/install-caddy-reverse-proxy-ubuntu/
-
Ditch Nginx complexity!
Master Caddy on Ubuntu 24.04 for automatic HTTPS, native WebSockets, and zero-downtime reloads.
SRE Production Blueprint:
• Cloudsmith Repo: Avoid outdated Ubuntu APT packages.
• HTTP/3 QUIC: Open UDP 443 alongside TCP 80/443 in UFW.
• No Anti-Patterns: Caddy sets X-Forwarded-For automatically.
• Zero Downtime: Use systemctl reload caddy.https://www.servermo.com/howto/install-caddy-reverse-proxy-ubuntu/
-
Как измерить собственный обход блокировок: восемь механизмов, которые не выполнялись ни разу
Мы делаем RCQ , мессенджер со сквозным шифрованием и открытым кодом ( Android , iOS , протокол ). В нашем основном регионе приложение блокируют, поэтому обход встроен внутрь клиента: sing-box в самом приложении, пул релеев, подписанный конфиг с их списком, запасной путь через CDN. Всё это писалось месяцами и ни разу не измерялось. Мы знали, что механизмы есть, а срабатывают ли они хоть когда-нибудь и в каком проценте случаев, никто из нас сказать не мог, потому что спрашивать было не у чего. В начале августа ушло двое суток на приборы. Ни одной новой функции, только измерение уже написанного. Нашлось восемь мест одной и той же формы: механизм построен, задеплоен, в него верят, а в продакшене он либо не выполнялся ни разу, либо выполнялся не так, как все были уверены. Дальше про приборы. Обход блокировок тут просто предметная область, приёмы работают на любом коде, который включается редко и по чужому расписанию: ретраи, фолбэки, аварийные переключения, резервные каналы доставки.
https://habr.com/ru/articles/1067252/
#обход_блокировок #телеметрия #наблюдаемость #Caddy #singbox #Reality #Cloudflare #отказоустойчивость #постмортем #ntfy
-
Bonne journée de travail : mon site est en ligne.
Moteur Zola (générateur statique, écrit en Rust), thème Apollo. Le contenu
existait déjà pour l'essentiel, restait à le mettre en forme.
Zola sert le site en local pendant qu'on écrit : les modifications s'affichent
en direct. Le contenu tient dans des fichiers Markdown, l'habillage dans un CSS
qui recouvre celui du thème.
Puis le domaine dans Caddy, un dossier dans /var/www, un rechargement, un rsync
depuis mon poste. Et c'est fini.
https://atelier.clavelier.me
#Zola #Caddy #SelfHosting #Debian -
Статичный сайт с Vite + Caddy + Docker: пошаговое руководство
В данной статье будет подробно рассмотрен полный цикл деплоя сайта, используюшего Vite в качестве инструмента сборки. Мы напишем многоступенчатый Dockerfile, чтобы собрать образ с готовой статикой, и поднимем контейнер с сервером Caddy, который автоматически выдаст и будет обновлять сертификаты Let's Encrypt.
-
We know the scurge of "AI" scraping bots. But it has become almost impossible to tell the difference between scraping bots and pentest bots. This is from a domain I purchased months ago and put something on late on the 26th. 3 humans including me know the domain and I guarantee the two others have not visited more than once (which was out of sheer politeness).
Look at this specific session, this is just a blitz probe, none of those URLs actually exist. The sheer volume is astounding. It's a Go application sitting behind a Caddy reverse proxy (both performing admirably) which reports the usage to Umami, which is what the screenshots are from.
-
We know the scurge of "AI" scraping bots. But it has become almost impossible to tell the difference between scraping bots and pentest bots. This is from a domain I purchased months ago and put something on late on the 26th. 3 humans including me know the domain and I guarantee the two others have not visited more than once (which was out of sheer politeness).
Look at this specific session, this is just a blitz probe, none of those URLs actually exist. The sheer volume is astounding. It's a Go application sitting behind a Caddy reverse proxy (both performing admirably) which reports the usage to Umami, which is what the screenshots are from.
-
Why Caddy Is My Favorite Reverse Proxy in 2025 — hands-on guide for sysadmins. #docker #caddy #reverse-proxy
https://www.valtersit.com/why-caddy-is-my-favorite-reverse-proxy-in-2025/
-
#Docker Services erreichen mittels #Traefik
Wem Traefik zu kompliziert ist, findet mit #Caddy und #Caddyfile eine einfachere Lösung, um #Docker-Images unter einer #Domain zu binden. Damit hat man eine saubere Trennung zwischen den Containern und dieser Traefik-Verwaltung.
https://gnulinux.ch/docker-services-erreichen-mittels-traefik
-
#Docker Services erreichen mittels #Traefik
Wem Traefik zu kompliziert ist, findet mit #Caddy und #Caddyfile eine einfachere Lösung, um #Docker-Images unter einer #Domain zu binden. Damit hat man eine saubere Trennung zwischen den Containern und dieser Traefik-Verwaltung.
https://gnulinux.ch/docker-services-erreichen-mittels-traefik
-
𝗖𝗮𝗱𝗱𝘆:
https://thewhale.cc/posts/caddy
Caddy is the HTTP/2 web server with automatic HTTPS. It is the only web server that uses HTTPS by default. A hardened TLS stack with modern protocols preserves privacy and exposes MITM attacks.
-
𝗖𝗮𝗱𝗱𝘆:
https://thewhale.cc/posts/caddy
Caddy is the HTTP/2 web server with automatic HTTPS. It is the only web server that uses HTTPS by default. A hardened TLS stack with modern protocols preserves privacy and exposes MITM attacks.
-
😭 Idk what happened. My #Indiekit server died on me suddenly while I was trying to work on a new plugin for tracking books, so without thinking I thought it was caused by the new plugin tinkering. Then I thought it was caused by the #codeberg outage a while ago... But I think I found out the actual problem... an expired Caddy cert. I need to take a break now my head is full of #nodejs #nunjuks #caddy #docker_compose #microformats #micropub 😵💫
-
😭 Idk what happened. My #Indiekit server died on me suddenly while I was trying to work on a new plugin for tracking books, so without thinking I thought it was caused by the new plugin tinkering. Then I thought it was caused by the #codeberg outage a while ago... But I think I found out the actual problem... an expired Caddy cert. I need to take a break now my head is full of #nodejs #nunjuks #caddy #docker_compose #microformats #micropub 😵💫
-
So following the standard guide I have #iocaine correctly returning 421 for Mozilla UA requests (which is correct as far as I understand how it's supposed to work), but then #caddy just returns that 421 to my browser instead of continue to the configured fallback.
I can't understand how can I mess up such a simple thing. Three different firefox flavors all suffer from that, chromium too. I think I've messed up the caddy setup, but how if I just copy-pasted the stuff from the guide?! -
He encontrado este repositorio https://github.com/ai-robots-txt/ai.robots.txt que ofrece varios ficheros de configuración actualizados para diferentes servidores web (#Apache, #nginx, #caddy, #lighthttpd y #haproxy) y un robots.txt que bloquean varios "AI Crawlers" o "scrappers" por user-agent para evitar que abusen de vuestro servidor. Evidentemente esto no es infalible porque bien es sabido que no respetan nada, pero menos da una piedra y la configuración es mínima y quirúrgica.
-
He encontrado este repositorio https://github.com/ai-robots-txt/ai.robots.txt que ofrece varios ficheros de configuración actualizados para diferentes servidores web (#Apache, #nginx, #caddy, #lighthttpd y #haproxy) y un robots.txt que bloquean varios "AI Crawlers" o "scrappers" por user-agent para evitar que abusen de vuestro servidor. Evidentemente esto no es infalible porque bien es sabido que no respetan nada, pero menos da una piedra y la configuración es mínima y quirúrgica.
-
I've cleaned up my Raspberry Pi selfhosting setup a bit. I'm using two, each in an Argon ONE V5 case with a 1TB NVME drive, running Raspberry Pi OS.
'one' is serving Nextcloud All-in-one, Immich and Vaultwarden via a Caddy reverse-proxy. All using Docker containers, Caddy as a custom build with my domain DNS provider added.
'two' is used as remote borg backup destination for 'one', and later a few monitoring tools.
All three sites are using a wildcard certificate for my domain, and I connect via WireGuard (on the router) when away from home.
Path of least resistance:
I've tried Podman, AlmaLinux, and running a manual install of Nextcloud on Ubuntu. This setup follows recommended installations methods, and gives me fewer things to worry about.
#selfhosting #raspberrypi #nextcloud #immich #vaultwarden #caddy #wireguard
-
I've cleaned up my Raspberry Pi selfhosting setup a bit. I'm using two, each in an Argon ONE V5 case with a 1TB NVME drive, running Raspberry Pi OS.
'one' is serving Nextcloud All-in-one, Immich and Vaultwarden via a Caddy reverse-proxy. All using Docker containers, Caddy as a custom build with my domain DNS provider added.
'two' is used as remote borg backup destination for 'one', and later a few monitoring tools.
All three sites are using a wildcard certificate for my domain, and I connect via WireGuard (on the router) when away from home.
Path of least resistance:
I've tried Podman, AlmaLinux, and running a manual install of Nextcloud on Ubuntu. This setup follows recommended installations methods, and gives me fewer things to worry about.
#selfhosting #raspberrypi #nextcloud #immich #vaultwarden #caddy #wireguard
-
I’ve migrated from Caddy to Traefik and I’m wondering if I’ve messed it up
#caddy #traefik #selfhosted -
New on the blog: Hosting DokuWiki on FreeBSD with Bastille, nginx, and Caddy.
A deliberately small, database-free wiki: one application jail, central Caddy ingress, PHP-FPM over a Unix socket, and explicit nginx rules protecting DokuWiki’s private data.
The interesting part isn’t getting a page to render. It’s drawing clean security and backup boundaries.
https://blog.hofstede.it/hosting-dokuwiki-on-freebsd-with-bastille-nginx-and-caddy/
-
New on the blog: Hosting DokuWiki on FreeBSD with Bastille, nginx, and Caddy.
A deliberately small, database-free wiki: one application jail, central Caddy ingress, PHP-FPM over a Unix socket, and explicit nginx rules protecting DokuWiki’s private data.
The interesting part isn’t getting a page to render. It’s drawing clean security and backup boundaries.
https://blog.hofstede.it/hosting-dokuwiki-on-freebsd-with-bastille-nginx-and-caddy/
-
Finally got my personal subdomain to resolve to my local services through caddy/adguard and use either lan or tailscale depending on if I'm at home or remote. No more downloading local certs to keychains.
Yusssss.
-
Thanks to DB Tech for making this tutorial very straightforward on his blog.
For MacOS users a couple tips:
1. If using Adguard Home, make sure you edit your 'Adguardhome.yaml' to change the UI port from 80 to something like 3000. Caddy will try to use port 80 and conflicts can happen.
It will look like:
http:
pprof:
port: 6060
enabled: false
doh:
routes:
- GET /dns-query
- POST /dns-query
- GET /dns-query/{ClientID}
- POST /dns-query/{ClientID}
insecure_enabled: false
address: 0.0.0.0:80 # <- change this to a different port
session_ttl: 30dIf another container like nginx is up it could be causing port 80 conflicts as well. Use this docker command to find the conflicting docker containers using port 80.
docker ps --format "table {{.Names}}\t{{.Ports}}"
2. When adding the cert to your keychain access, don't just double click the cert. Rename it to 'Caddy.cert' first to easily reference it, then drop it in your 'System' Keychain.
After this double click on it, open up the 'Trust' row, and where it says 'When using this certificate:' select 'Always Trust'.
3. Restart your browser and flush the dns cache if needed. You should be all good!
-
Thanks to DB Tech for making this tutorial very straightforward on his blog.
For MacOS users a couple tips:
1. If using Adguard Home, make sure you edit your 'Adguardhome.yaml' to change the UI port from 80 to something like 3000. Caddy will try to use port 80 and conflicts can happen.
It will look like:
http:
pprof:
port: 6060
enabled: false
doh:
routes:
- GET /dns-query
- POST /dns-query
- GET /dns-query/{ClientID}
- POST /dns-query/{ClientID}
insecure_enabled: false
address: 0.0.0.0:80 # <- change this to a different port
session_ttl: 30dIf another container like nginx is up it could be causing port 80 conflicts as well. Use this docker command to find the conflicting docker containers using port 80.
docker ps --format "table {{.Names}}\t{{.Ports}}"
2. When adding the cert to your keychain access, don't just double click the cert. Rename it to 'Caddy.cert' first to easily reference it, then drop it in your 'System' Keychain.
After this double click on it, open up the 'Trust' row, and where it says 'When using this certificate:' select 'Always Trust'.
3. Restart your browser and flush the dns cache if needed. You should be all good!
-
I wrote a small blog post about some Best Practices for the Webserver Caddy. Although the header part applies basically to all webservers.
Kinda new to this whole blog thing (started on 25.), so let me know what you think :)https://catinashell.de/posts/secure-a-caddy-server-and-best-practices/
-
I wrote a small blog post about some Best Practices for the Webserver Caddy. Although the header part applies basically to all webservers.
Kinda new to this whole blog thing (started on 25.), so let me know what you think :)https://catinashell.de/posts/secure-a-caddy-server-and-best-practices/
-
Caddy web server users: what is your current state of the art for dealing with scapers and bots?
In the mholt rate limiting plugin worth using?
-
GlobalSign отозвал 20 000 сертификатов. Прошёл свои десять сайтов и записал, где будет больно
В российском вебе за неделю сломалось две вещи. 13 июня GlobalSign начал массовый отзыв сертификатов у российских компаний — до 20 000 доменов второго уровня под ударом. Let’s Encrypt 4 июня формализовал санкционные ограничения в новой редакции пользовательского соглашения. Я держу около десятка сайтов, все на Let’s Encrypt; сел и прошёл их по списку — какой issuer у каждого, кому грозит и в каком порядке, какие альтернативы реально работают в 2026 году. Внутри: пайплайн инвентаризации через openssl и crt.sh, конфиг Caddy с двумя issuer-ами в fallback, разбор Google Trust Services, НУЦ Минцифры и тех, кто уже выбыл (Buypass) или присоединился к ограничениям (ZeroSSL).
https://habr.com/ru/articles/1049334/
#TLS #SSL #GlobalSign #сертификаты #санкции #ACME #Caddy #НУЦ #Certificate_Transparency #lets_encrypt
-
#caddy reverse proxy auf dem #raspberry5
-
I'm showing quite a few sensor values from @homeassistant on our #DAKboard digital calendar. To avoid handing over a long-lived access token to DAKboard, and to limit what it can access — I set up #Caddy to enforce a limited access scope.
https://www.cavelab.dev/posts/secure-home-assistant-api-caddy/
-
🔗 Caching get_certificate lookups in Caddy
https://ma.ttias.be/caching-get-certificate-lookups-in-caddy/
#performance #opensource #ssl #caddy #caching -
🚀🎩 Behold, the magical world of #zeroserve where, by the power of #Caddy compatibility and some tech jargon jiu-jitsu, a simple #HTTPS #server transmogrifies into the superhero of latency! 🦸♂️✨ But wait, the real question is: did anyone ask for this server drama in the first place? 🤔🖥️
https://su3.io/posts/zeroserve-caddy-compat #latency #techdrama #servernews #HackerNews #ngated -
Caddy compatibility for zeroserve: 3x throughput and 70% lower latency
https://su3.io/posts/zeroserve-caddy-compat
#HackerNews #Caddy #Zeroserve #Throughput #Latency #Compatibility
-
Damn! #Caddy is amazing.
I didn't know how easy it is to write an extension for it.
Implemented a custom dynamic http upstream provider based on our internal server management (via session server) within 1.5h.
Works like a charme and might be a good solution to replace my 16yr old Apache+mod_perl solution which is not up-to-speed with modern HTTP anymore.
-
You know how you sometimes want to review something that is not a book but doing so on a public #bookwyrm instance feels wrong?
Well, now you can do it with a tool designed for reviews of arbitrary units of media with #annexwyrm.
It's written by #ClaudeCode in #KokaLang, serving behind #Caddy, project-managed by yours truly — https://github.com/cognivore/annexwyrm
Example of me reviewing a design document of a #magicthegathering #cube I played the other day —
https://wyrm.fere.me/items/89fa00bd2da5f777e2ce7ca8
(It was a great cube)
-
RE: https://mstdn.thms.uk/@michael/116675647729203291
I really do love this setup: the whole thing is 40 lines of Caddyfile plus 15 lines of docker compose, to proxy 7 sites from my home network to the internet.
Super simple, super easy to backup, extremely extensible (adding a new site is just adding a couple of lines of Caddyfile), and really elegant.
And I own it all - it’s super portable, and doesn’t depend on any particular 3rd party. (Except I suppose the caddy docker image.)
Whilst it’s currently hosted on an Oracle VPS (because free) migrating it to any other server would probably be less than half an hour’s work.
-
The Programmer’s Fulcrum: 5 June, 2026This post originally appeared on The Fulcrum.
Welcome to this week’s The Programmer’s Fulcrum.
It’s your weekly curation of the essential news in the Open Media Network and Fediverse development communities with a focus on devastating big tech via Techno Anarchism.
The big news this week was obviously The European Commission’s European Technological Sovereignty Package. So, there’s much more […]
https://newsletter.mobileatom.net/the-programmers-fulcrum-5-june-2026/ #Ackee #ActivityPub #AI #ATProto #Bonfire #BuildAwesome #Caddy #CSS #DuckDuckGo #elixir #fediverse #Ghost #GitHub #Holos #HTML #javascript #LAUTI #Leaflet #LibreOffice #Linux #Manade #Mastodon #Mastro #Matrix #MicroBlog #Movim #Nextcloud #OMN #Plausible #PostmarketOS #Qwant #Rails #RSS #SelfHosting #Servo #Sharkey #signal -
-
Matthew Holt released #Caddy version 2.11.4. https://caddyserver.com/