webdav is a standalone WebDAV server written in Go that provides simple file access over the WebDAV protocol.
The tool solves the problem of needing a lightweight, self-contained WebDAV server for exposing filesystem resources over HTTP. It works by implementing the WebDAV protocol to allow clients to read, write, and manage files on a server through standard WebDAV operations. The server supports partial file updates compatible with SabreDAV's PATCH extension, accepting requests with the application/x-sabredav-partialupdate content type and range specifications, as well as partial PUT requests using Content-Range headers for client compatibility.
The project suits developers and operators who need a minimal WebDAV deployment without heavy dependencies. It works well for scenarios requiring straightforward file sharing or remote filesystem access. Installation is flexible: binaries are available for multiple systems, it can be built from source using the Go toolchain, installed via Homebrew, or run as a Docker container with provided compose configuration. Access control is managed through a configuration file supporting YAML, JSON, or TOML formats, with rules that can be specified as path prefixes or regex patterns. Rules are matched against resolved request paths and apply to all paths an operation touches, affecting collection listings, copy operations, and move or delete requests.
The project receives issue and pull request responses within one to two weeks. Work in the issue tracker centers on enhancements, bug fixes, and upstream-related items.