https://github.com/rexzhang/asgi-webdav
An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.
https://github.com/rexzhang/asgi-webdav
asgi asyncio docker-container webdav webdav-server
Last synced: 3 months ago
JSON representation
An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.
- Host: GitHub
- URL: https://github.com/rexzhang/asgi-webdav
- Owner: rexzhang
- License: mit
- Created: 2021-01-22T10:02:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-31T04:29:10.000Z (8 months ago)
- Last Synced: 2025-03-28T20:09:36.029Z (3 months ago)
- Topics: asgi, asyncio, docker-container, webdav, webdav-server
- Language: Python
- Homepage: https://rexzhang.github.io/asgi-webdav/
- Size: 1.46 MB
- Stars: 78
- Watchers: 2
- Forks: 15
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-asgi - ASGIWebDAV - An asynchronous WebDAV server implementation. Support multi-provider, multi-account and permission control. (End-user applications)
README
# ASGI WebDAV Server

[](https://pypi.org/project/ASGIWebDAV)

[](https://codecov.io/gh/rexzhang/asgi-webdav)
[](https://github.com/psf/black)
[](https://hub.docker.com/r/ray1ex/asgi-webdav)
](https://img.shields.io/pypi/dm/ASGIWebDAV)
[](https://github.com/rexzhang/asgi-webdav/releases)An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.
## Features
- [ASGI](https://asgi.readthedocs.io) standard
- WebDAV standard: [RFC4918](https://www.ietf.org/rfc/rfc4918.txt)
- Support multi-provider: FileSystemProvider, MemoryProvider
- Support multi-account and permission control
- Support optional home directory
- Support store password in raw/hashlib/LDAP(experimental) mode
- Full asyncio file IO
- Passed all [litmus(0.13)](http://www.webdav.org/neon/litmus) test, except 3 warning
- Browse the file directory in the browser
- Support HTTP Basic/Digest authentication
- Support response in Gzip/Brotli
- Compatible with macOS finder and Window10 Explorer## Python Version
v3.10+
## Quickstart
[中文手册](https://rexzhang.github.io/asgi-webdav/zh/)
```shell
docker pull ray1ex/asgi-webdav
docker run -dit --restart unless-stopped \
-p 8000:8000 \
-e UID=1000 -e GID=1000 \
-v /your/data:/data \
--name asgi-webdav ray1ex/asgi-webdav
```## Default Account
| | value | description |
| ---------- | ---------- | ------------------------------- |
| username | `username` | - |
| password | `password` | - |
| permission | `["+"]` | Allow access to all directories |## View in Browser

## Documentation
[Documentation at GitHub Page](https://rexzhang.github.io/asgi-webdav/)
## TODO
- Digest auth support neon
- SQL database provider
- Test big(1GB+) file in MemoryProvider
- display server info in page `/_/admin` or `/_/`
- Fail2ban(docker)
- NFSProvider
- logout at the web page
- Fix MemoryProvider with macOS finder(create new file)
- rewrite MemoryProvider with mmap
- generate template URL for share(read only)## Related Projects
-