I use this docker image: https://github.com/BytemarkHosting/docker-webdav, but with a PR that has yet to be merged that makes it easy to use a different UID/GUID [1]. I've tried to do it with nginx, as described in [2], but it just did not work reliably - it would often disconnect and instead of going down a debugging rabbit hole I just used the Apache based image. There is also a Go server [3] that I have not tried.
Lastly, I put an nginx reverse-proxy in front of it for SSL - probably not necessary since nothing is on the public internet.
Lastly, I put an nginx reverse-proxy in front of it for SSL - probably not necessary since nothing is on the public internet.
[1] https://github.com/BytemarkHosting/docker-webdav/pull/28
[2] https://www.robpeck.com/2020/06/making-webdav-actually-work-...
[3] https://github.com/hacdias/webdav