veganism.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Veganism Social is a welcoming space on the internet for vegans to connect and engage with the broader decentralized social media community.

Administered by:

Server stats:

196
active users

#caddy

2 posts2 participants0 posts today

Caddy 2.10 has been released, featuring fully-automated Encrypted ClientHello (ECH), post-quantum key exchange (x25519mlkem768), ACME profiles (6-day certs!), and many improvements/fixes. Please verify it works for you and deploy away! #caddy #ech
github.com/caddyserver/caddy/r

GitHubRelease v2.10.0 · caddyserver/caddyCaddy 2.10 is here! Aside from bug fixes, this release features: Encrypted ClientHello (ECH): This new technology encrypts the last plaintext portion of a TLS connection: the ClientHello, which in...

把 nginx 換成 Caddy

把 blog 主機從 nginx 換成 Caddy,算是嘗試看看? 前面有擋 CloudFront 的情況下,Caddy 自己對 Let's Encrypt 的處理有卡住,原因是 CloudFront 連到 origin server 的時候會需要有 valid HTTPS connection,但 CloudFront 上開 HTTPS only 導致 dead loop。 404.tw 在 CloudFront 修正設定變成與 client 端相同的 protocol 就正常了,但 blog 本身的 blog.gslin.org 與放圖片用的 i.gslin.com 就一直失敗,結果重試太多次撞到 Let's Encrypt 的 rate limit... 後來想到有可能是 cache 造成的,但清了 cache 然後等一個小時後發現還是不行,就先 bypass Clou…

blog.gslin.org/archives/2025/0

Gea-Suan Lin's BLOG · 把 nginx 換成 Caddy把 blog 主機從 nginx 換成 Caddy,算是嘗試看看? 前面有擋 CloudFront 的情況下,Caddy 自己對 Let's Encrypt 的申請過程會卡住,原因是 CloudFront 連到 origin server 的時候會需要有 valid HTTPS connection,但 CloudFront 上開 HTTPS only 導致 dead loop (雞生蛋蛋生雞的問題)。 所以其中一個方向是把 HTTPS only 的事情讓 origin server 做,不要在 CloudFront 上面處理:在 404.
#caddy#nginx#server

🐌 Wow, someone found a way to make their #localhost #setup even more convoluted! Now, instead of just typing "localhost:4333", you can go through the joyous process of configuring #launchd daemons, editing /etc/hosts, and wrangling #Caddy for that sweet appname.localhost experience. 🧙‍♂️ Truly the pinnacle of #productivity for when you have too much time and not enough friends. 🤦‍♂️
inclouds.space/localhost-domai #devlife #HackerNews #ngated

inclouds.space.localhost domains

Ok, so it took me more than 10 minutes to figure out the right Caddyfile syntax for a reverse-proxy with TLS using DNS challenge from Cloudflare.

Caddy is great, and generally it is super easy, but this particular case was not.

So in the interest of saving some other poor frazzled soul like myself from digging through the interwebs, I'm throwing an example up on my blog. Hope it saves someone a few.

christopherbauer.org/blog/cadd

Caddy Reverse Proxy with TLS and Cloudflare DNS Challenge - A Caddyfile ExampleCaddy Reverse Proxy with TLS and Cloudflare DNS Challenge - A Caddyfile Example

I'm curious to hear what others are #SelfHosting! Here's my current setup:

Hardware & OS

Infrastructure & Networking

Security & Monitoring

Authentication & Identity Management

  • Authelia (Docker): Just set this up for two-factor authentication and single sign-on. Seems to be working well so far!
  • LLDAP (Docker): Lightweight LDAP server for managing authentication. Also seems to be working pretty well!
    #AuthenticationTools #IdentityManagement

Productivity & Personal Tools

Notifications & Development Workflow

  • Notifications via: #Ntfy (Docker) and Zoho's ZeptoMail (#Zoho)
  • Development Environment: Mostly using VSCode connected to my server via Remote-SSH extension. #VSCodeRemote

Accessibility Focus ♿🖥️

Accessibility heavily influences my choices—I use a screen reader full-time (#ScreenReader), so I prioritize services usable without sight (#InclusiveDesign#DigitalAccessibility). Always open to discussing accessibility experiences or recommendations!

I've also experimented with:

  • Ollama (#Ollama): Not enough RAM on my Pi.
  • Habit trackers like Beaver Habit Tracker (#HabitTracking): Accessibility issues made it unusable for me.

I don't really have a media collection, so no Plex or Jellyfin here (#MediaServer)—but I'm always open to suggestions! I've gotten a bit addicted to exploring new self-hosted services! 😄

What's your setup like? Any cool services you'd recommend I try?

#SelfHosted #LinuxSelfHost #OpenSource #TechCommunity #FOSS #TechDIY

@selfhost @selfhosted @selfhosting

Fun (actually not fun at all) fact about Caddy:

This expression will be merged with
AND:

@matcher {
    path /foo
    header Header-Name value
}

But this one will be merged with
OR, despite being functionally identical:
@matcher {
    expression `path('/foo')`
    expression `header({'Header-Name': 'value'})`
}

Caddy has some cursed, barely-documented logic where matcher blocks always merge with
AND unless two matchers of the same time are adjacent. In the latter case, they may be merged with AND or OR depending on matcher-specific logic, which is not publicly documented.


This results in completely different behavior depending on whether a matcher is defined using expression or directive syntax. Despite the docs implying that the two options are identical,
they are not! You can have an existing, functional matcher with a mix of directives and expressions, and suddenly it breaks because one of the directives was replaced with an identical expression. It's extremely counter-intuitive.

#Caddy #PSA #ServerAdmin #SelfHost

So I want to set up a #CI pipeline on my webserver to serve static sites.

I already have a @caddy setup that can serve static files, as well as a bunch of other stuff that all runs in #Docker containers. But I would like to have a CI pipeline that will pick up my repository changes, and build and deploy stuff to a directory that #Caddy can serve.

Now, how ridiculous would it be to have:

- an SSH server running in a Docker container
- @WoodpeckerCI, also in Docker

and get Woodpecker to build the site and use scp to copy files over to the SSH server, that will have a shared volume with the Caddy container that maps to the /var/www directory?

I am not ready to set up a whole @forgejo instance to serve from Forgejo Pages. Plus, why use the Pages thing when I have a perfectly good Caddy server running already, that would be serving the Forgejo instance anyway?

Why not some sort of S3 compatible service in a container?
Why not FTP?
How many containers can a guy run?
Am I losing my mind (probably)?