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 is integrated as well for proper full WebDAV support.
Using
There are a few reasonable ways of setting it up.
- Standalone mode with authentication TODO webdav apis with an htpasswd file through nginx basic authentication
- Managed mode with subrequest full cloud functionality TODO webdav apis with database managed through django
Building
TODO
Testing
TODO