Caddy supports webdav very well with plugin webdav, although it is not bundled by default. To facilitate deploying webdav on small devices, this image is built with webdav plugin.
docker pull juvenn/caddy-dav:2.7.6
To provision a webdav site in caddy, put the following in your Caddyfile
:
{
order webdav before file_server
}
media.local:8080 {
root * /var/media
webdav
}
As webdav server, it works well now. But if you'd like to view it in browser, it displays only xml, which is not friendly. To make it listing directory, we need to add file_server browse
directive:
{
order webdav before file_server
}
media.local:8080 {
@get method GET
root * /var/media
route {
file_server @get browse
webdav
}
}
Note
It will expose files listing in public, you may want to enable basic auth as well as tls before deploying it.
For more information, please refer to caddy-webdav
This is just a re-packaging of caddy, all credits should to @mholt and @caddyserver team.