A generic and extendable WebDAV server written in Python and based on WSGI.
Main features:
WsgiDAV is a stand-alone WebDAV server with SSL support, that can be
installed and run as Python command line script on Linux, OSX, and Windows:
$ pip install wsgidav cheroot
$ wsgidav --host=0.0.0.0 --port=80 --root=/tmp --auth=anonymous
Running without configuration file.
10:54:16.597 - INFO : WsgiDAV/4.0.0-a1 Python/3.9.1 macOS-12.0.1-x86_64-i386-64bit
10:54:16.598 - INFO : Registered DAV providers by route:
10:54:16.598 - INFO : - '/:dir_browser': FilesystemProvider for path '/Users/martin/prj/git/wsgidav/wsgidav/dir_browser/htdocs' (Read-Only) (anonymous)
10:54:16.599 - INFO : - '/': FilesystemProvider for path '/tmp' (Read-Write) (anonymous)
10:54:16.599 - WARNING : Basic authentication is enabled: It is highly recommended to enable SSL.
10:54:16.599 - WARNING : Share '/' will allow anonymous write access.
10:54:16.813 - INFO : Running WsgiDAV/4.0.0-a1 Cheroot/8.5.2 Python 3.9.1
10:54:16.813 - INFO : Serving on http://0.0.0.0:80 ...
Run wsgidav --help
for a list of available options.
The python-pam library is needed as extra requirement if pam-login authentication is used on Linux or OSX:
$ pip install wsgidav[pam]
$ wsgidav --host=0.0.0.0 --port=8080 --root=/tmp --auth=pam-login
Note: Windows users may prefer the MSI Installer (see Assets section), or use winget:
> winget install wsgidav
WebDAV is a superset of HTTP, so WsgiDAV is also a performant, multi-threaded web server with SSL support.
WsgiDAV is also a Python library that implements the WSGI protocol and can
be run behind any WSGI compliant web server.
WsgiDAV is implemented as a configurable stack of WSGI middleware
applications.
Its open architecture allows to extend the functionality and integrate
WebDAV services into your project.
Typical use cases are:
See the (change log) for details.
Note: Release 4.0 introduces some refactorings and breaking changes.
See the (change log) for details.
Contributors:
Any kind of feedback is very welcome!
Have fun :-)
Martin