50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# Why use this WebDAV Nginx server?
|
|
This server is a single Nginx module attempting to be a fully-fledged WebDAV server in C. It's a fork of existing projects aiming to fix issues they had and merge the codebases. Specifically the goals of this project are:
|
|
|
|
[x] extremely easy setup configuration
|
|
|
|
[x] don't ruin the filesystem, the server filesystem looks like just as it does as a WebDAV mount, copy your files in or out and you're good to go
|
|
|
|
[x] APIs lenient enough to work with all clients in contrast to the native Nginx webdav module
|
|
|
|
[ ] WebDAV PROPPATCH method
|
|
|
|
[ ] WebDAV SEARCH method through xapian(?)
|
|
|
|
[ ] etag checksums for more robust client syncing
|
|
|
|
[ ] optional thumbnailing though cron jobs
|
|
|
|
[ ] optional filesystem indexing for WebDAV SEARCH with cron jobs that uses noninvasive and compatible .index files
|
|
|
|
[ ] optional locking and unlocking in redis
|
|
|
|
[x] functional testing suite
|
|
|
|
# Was this written from zero?
|
|
The native nginx dav_module has been integrated with a few changes for client compatibility. This solves some very difficult problems with client compatibility:
|
|
|
|
- trailing slash issues for DELETE requests uris
|
|
|
|
- trailing slash issues for MOVE and COPY requests uris and destination headers
|
|
|
|
- trailing slash issues for MKCOL request uris
|
|
|
|
The community [nginx_dav_ext_module](https://github.com/MkfsSion/nginx-dav-ext-module) is integrated as well for proper full WebDAV support.
|
|
|
|
# Using
|
|
There are a few reasonable ways of setting it up.
|
|
1. Standalone mode with authentication
|
|
|
|
TODO webdav apis with an htpasswd file through nginx basic authentication
|
|
|
|
2. Managed mode with subrequest full cloud functionality
|
|
|
|
TODO webdav apis with database managed through django
|
|
|
|
# Building
|
|
TODO
|
|
|
|
# Testing
|
|
TODO
|