synodriver / asgi-webdav

An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.

Home Page:https://rexzhang.github.io/asgi-webdav/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ASGI WebDAV Server

GitHub Docker Image Version (tag latest semver) Pytest Workflow Status codecov Code style: black LGTM Grade Docker Pulls downloads

An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.

Features

  • ASGI standard
  • WebDAV standard: RFC4918
  • Support multi-provider: FileProvider, 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) test, except 2 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

Quickstart

中文手册

docker pull ray1ex/asgi-webdav
docker run --restart always -p 0.0.0.0:8000:8000 \
  -v /your/data:/data \
  -e UID=1000 -e GID=1000 \
  --name asgi-webdav ray1ex/asgi-webdav

Default Account

value description
username username -
password password -
permission ["+"] Allow access to all directories

View in Browser

Documentation

Github Page

TODO

  • Digest auth support
  • SQL database provider
  • PROPFIND support DAVDepth.infinity
  • Test big(1GB+) file in MemoryProvider
  • display server info in page /_/admin or /_/
  • OpenLDAP
  • Fail2ban(docker)
  • NFSProvider
  • logout at the web page
  • Fix MemoryProvider with macOS finder(create new file)

Related Projects

About

An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.

https://rexzhang.github.io/asgi-webdav/

License:MIT License


Languages

Language:Python 98.8%Language:Dockerfile 0.9%Language:Shell 0.3%