content: #
  # Webdav server settings.
  #
  [server]
    # Port(s) to listen on.
    listen = [ "0.0.0.0:4918", "[::]:4918" ]
  
    # Tls config.
    # tls_listen = [ "0.0.0.0:443", "[::]:443" ]
    # tls_cert = "/etc/ssl/certs/example.com-chained.crt"
    # tls_key = "/etc/ssl/private/example.com.key"
  
    # Unix uid/gid to run under (when not running setuid as user).
    # Optional - if not set, will not change uid.
    uid = 33
    gid = 33
    # Server: header to send (default: "webdav-server-rs")
    identification = "webdav-server-rs"
  
  #
  # User settings.
  #
  # These are defaults. The same settings can be applied
  # on the [[location]] level.
  #
  [accounts]
    # how to authenticate: pam, htaccess.NAME (default: unset).
    auth-type = "pam"
    # what account "database" to use (default: unset).
    acct-type = "unix"
    # realm to use with basic authentication (default: "Webdav Server").
    realm = "Webdav Server"
  
  #
  # PAM authentication settings.
  #
  [pam]
    # PAM service to use.
    service = "other"
    # Cache timeout (secs). 0 disables the cache (default: 120).
    cache-timeout = 120
    # Number of thread to use for the PAM service threadpool (default: 8).
    threads = 8
  
  #
  # Htpasswd authentication settings.
  #
  [htpasswd.example]
    # htpasswd file.
    htpasswd = "/etc/htpasswd.example"
  
  # Unix account settings.
  #
  [unix]
    # Cache timeout (secs). 0 disables the cache (default: 120).
    cache-timeout = 120
    # Accounts with a user-id lower than this value cannot login (default: 0).
    min-uid = 1000
  
  #
  # Below follow a number of locations. Each location definition starts with
  # [[location]] (literally). For every request, the "path" and "methods"
  # settings of each location are checked in the same order # as they appear
  # in this file. The first one that matches is used.
  #
  
  ##
  ## Example location. Lists all settings.
  ##
  [[location]]
    # Matching route(s) to the resource.
    #
    # As is the convention with many http routers, you can use :PARAMETER
    # (path element match) or *PARAMETER (path wildcard match) in the
    # path definition. Everything between parentheses is optional.
    #
    # Currently 2 parameters can be used:
    #
    # - "path" is the part of the path to map to the filesystem
    # - "user" matches the currently authenticated user.
    #
    # A couple of examples:
    #
    # - For authenticated webdav sessions: [ "/:user/*path" ] or [ "/:user(/*path)" ]
    # - For serving / but no dirs below it: [ "/(:path)" ]
    # - For serving / and everything below it: [ "/*path" ]
    #
    # Note that only "path" is what is applied to the "directory" setting to
    # form a path on the filesystem. So route = [ "/loca/tion/*path" ] and
    # directory = "/var/www/html" will serve the content of /var/www/html
    # at the http path /loca/tion/.
    #
    # If there is no route defined, the location is ignored.
    route = [ "/*path" ]
  
    # Allowed methods (default: all).
    #
    # List of individual methods, or one of:
    #
    # http-ro: GET, HEAD
    # http-rw: GET, HEAD, PUT
    # webdav-ro: GET, HEAD, OPTIONS, PROPFIND
    # webdav-rw: GET, HEAD, OPTIONS, PROPFIND, PUT, PATCH, PROPPATCH,
    #            MKCOL, COPY, MOVE, DELETE, LOCK, UNLOCK
    methods = [ "webdav-ro" ]
  
    # Authenticate? true, false, opportunistic, write (default: opportunistic).
    #
    # "opportunistic": means "if you send an Authorization: header, we'll check it".
    # "write": means "for methods in webdav-rw that are not in webdav-ro".
    auth = "false"
  
    # Type of handler: filesystem, virtroot. Mandatory.
    #
    # The filesystem handler is what you would expect.
    #
    # The virtroot handler is a special handler for PROPFIND requests on
    # authenticated sessions, i.e. where we have a username. It is useful
    # when you have your webdav clients all under, say, /:user/*path.
    # In that case, normally a PROPFIND of "/" would return either NOT_FOUND
    # or the contents of the directory of some [[location]]. If the handler
    # is set to "virtroot", a PROPFIND will list exactly one subdirectory,
    # with the name of the authenticated user.
    #
    handler = "filesystem"
  
    # what to do on 404 Not Found: continue, return (default: return).
    on_notfound = "return"
  
    # Change UID/GID to that of the authenticated user: true, false (default: false).
    setuid = false
  
    # Directory to serve. Mandatory.
    #
    # You can use "~" to indicate "homedirectory of authenticated user".
    #
    directory = "/var/www/html"
  
    # Index file to serve when you GET a directory (if it exists) (default: none).
    #indexfile = "index.html"
  
    # Serve HTML directory indexes: true, false (default: false).
    autoindex = false
  
    # webdav PROPFIND: hide symbolic links: true, false (default: true).
    hide-symlinks = true
  
    # case insensitive lookups: true, false, ms (default: false).
    # "ms" means "for Microsoft clients".
    case-insensitive = "false"
  
  # Another location definition could follow.
  #[[location]]
  
  