`zrok` with a caddy backend mode using non-standard caddy module

I'm aware of running a zrok share using the caddy backend mode, which is super cool, of course. See this post for more details.

I believe that zrok has caddy built into it, which powers both the web backend mode and the caddy backend mode.

Is it possible to use zrok in caddy backend mode, but use a non-standard caddy module, like caddy-security? Using this non-standard module with standalone caddy requires using xcaddy to build a specialised version.

I think a goal in the v1.0 series is going to be to provide a build tool, similar (in spirit) to xcaddy (GitHub - caddyserver/xcaddy: Build Caddy with plugins) that will make it easy to create custom zrok binaries.

1 Like

zrok includes caddy-security since 0.4.35.

Looking forward to something xcaddy-esque for even more flexibility!

Caddyfiles have some interesting mechanics that I found challenging to uncover in documentation. There are two competing ways to evaluate environment variables. Additionally, zrok Caddyfiles are technically not Caddyfiles per se, but rather a Go template that must include {{ .ZrokBindAddress }}. To make things even more interesting, zrok's in-built Caddy can also provide an administrative API.

1 Like