/caddy-webdav

:open_file_folder: WebDAV support for Caddy server.

Primary LanguageGoMIT LicenseMIT

webdav

Build community Go Report Card

Caddy plugin that implements WebDAV. You can download this plugin with Caddy on its official download page.

Syntax

webdav [url] {
    scope       path
    modify      [true|false]
    allow       path
    allow_r     regex
    block       path
    block_r     regex
}

All the options are optional.

  • url is the place where you can access the WebDAV interface. Defaults to /.
  • scope is an absolute or relative (to the current working directory of Caddy) path that indicates the scope of the WebDAV. Defaults to ..
  • modify indicates if the user has permission to edit/modify the files. Defaults to true.
  • allow and block are used to allow or deny access to specific files or directories using their relative path to the scope. You can use the magic word dotfiles to allow or deny the access to every file starting by a dot.
  • allow_r and block_r and variations of the previous options but you are able to use regular expressions with them.

It is highly recommended to use this directive alongside with basicauth to protect the WebDAV interface.

webdav {
    # You set the global configurations here and
    # all the users will inherit them.
    user1:
    # Here you can set specific settings for the 'user1'.
    # They will override the global ones for this specific user.
}

Examples

WebDAV on / for the current working directory:

webdav

WebDAV on /admin for the whole file system:

webdav /admin {
    scope /
}

WebDAV on / for the whole file system, without access to /etc and /dev directories:

webdav {
    scope /
    block /etc
    block /dev
}

WebDAV on / for the whole file system. The user sam can't access /var/www but the others can.

basicauth / sam pass
webdav {
    scope /
    
    sam:
    block /var/www
}