Repolode
mar10

mar10/wsgidav

A generic, extendable WebDAV server written in Python on top of WSGI, runnable standalone or embedded in other WSGI apps.

Stars
1,247
Forks
178
Open issues
6
Last commit
13 hours ago

What is it?

WsgiDAV is a WebDAV server written in Python and built on the WSGI interface. It can be installed with pip and run from the command line to share a local directory over WebDAV, with SSL support and options for anonymous or authenticated access, including PAM login on Linux and macOS.

Beyond the standalone script, WsgiDAV is a Python library. It is structured as a configurable stack of WSGI middleware, so it can run behind any WSGI-compliant server or be integrated into an existing project. Its providers can expose arbitrary data structures as editable virtual file systems.

WebDAV is a superset of HTTP, so WsgiDAV also works as a general multi-threaded web server. It is commonly used for online editing of Microsoft Office documents over WebDAV.

Key features

  • 01Runs as a standalone command-line WebDAV server on Linux, macOS, and Windows.
  • 02Supports SSL and anonymous, basic, and PAM login authentication.
  • 03Built as a stack of WSGI middleware that can run behind any WSGI server.
  • 04Lets developers expose custom data structures as editable virtual file systems.
  • 05Available via pip, the Windows MSI installer, winget, and a Docker image.

Use cases

  • Sharing a local folder over WebDAV from a laptop or small server.
  • Editing Microsoft Office documents online through a WebDAV connection.
  • Adding WebDAV access to an existing Python WSGI application.
  • Presenting a database or API as a browsable, editable file system.

Quick start

  1. 1

    Install WsgiDAV and cheroot with pip

    pip install wsgidav cheroot
  2. 2

    Run the standalone server sharing a local folder

    wsgidav --host=0.0.0.0 --port=80 --root=/tmp --auth=anonymous

Things to know

  • Release 4.0 introduced breaking changes, so check the changelog when upgrading.
  • The anonymous example grants write access, and Basic authentication should be used over SSL.

Topics

FAQ

What is wsgidav?
A generic, extendable WebDAV server written in Python on top of WSGI, runnable standalone or embedded in other WSGI apps. WsgiDAV is a WebDAV server written in Python and built on the WSGI interface. It can be installed with pip and run from the command line to share a local directory over WebDAV, with SSL support and options for anonymous or authenticated access, including PAM login on Linux and macOS.
Is wsgidav free to use? What license does it have?
wsgidav is open source under the MIT license. Check the license terms before using it in commercial products.
Is wsgidav still maintained?
Actively maintained. The last commit to wsgidav was on Oct 24, 2026.
What can I use wsgidav for?
Sharing a local folder over WebDAV from a laptop or small server. Editing Microsoft Office documents online through a WebDAV connection. Adding WebDAV access to an existing Python WSGI application. Presenting a database or API as a browsable, editable file system.
How do I install wsgidav?
Install WsgiDAV and cheroot with pip: pip install wsgidav cheroot Run the standalone server sharing a local folder: wsgidav --host=0.0.0.0 --port=80 --root=/tmp --auth=anonymous
Where can I get wsgidav?
The source code and installation instructions are on GitHub: https://github.com/mar10/wsgidav

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects