Update README
This commit is contained in:
parent
806a194245
commit
234a058a92
32
INSTALL.md
Normal file
32
INSTALL.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
# Installing KaraDAV
|
||||
|
||||
0. Setup your server with PHP 8.0+, and don't forget `php-sqlite3` :)
|
||||
1. Just download or clone this repo
|
||||
2. Copy `config.dist.php` to `config.local.php`
|
||||
3. Edit `config.local.php` to match your configuration
|
||||
4. Create a virtual host (nginx, Apache, etc.) pointing to the `www` folder
|
||||
5. Redirect all requests to `www/_router.php`
|
||||
6. Go to your new virtual host and create your admin user
|
||||
|
||||
## Example Apache vhost
|
||||
|
||||
```
|
||||
<VirtualHost *:80>
|
||||
ServerName karadav.localhost
|
||||
DocumentRoot /home/user/git/karadav/www
|
||||
</VirtualHost>
|
||||
|
||||
<Directory /home/user/git/karadav/www>
|
||||
Options -Indexes -Multiviews
|
||||
AllowOverride None
|
||||
DirectoryIndex index.php
|
||||
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^.*$ /_router.php [L]
|
||||
</Directory>
|
||||
```
|
||||
|
||||
## Interaction with LDAP
|
12
Makefile
12
Makefile
|
@ -1,10 +1,18 @@
|
|||
KD2FW_URL=https://fossil.kd2.org/kd2fw/doc/tip/src/lib/KD2/
|
||||
|
||||
deps: js-deps php-deps
|
||||
|
||||
js-deps:
|
||||
wget -O www/webdav.js https://raw.githubusercontent.com/kd2org/webdav-manager.js/main/webdav.js
|
||||
wget -O www/webdav.css https://raw.githubusercontent.com/kd2org/webdav-manager.js/main/webdav.css
|
||||
|
||||
php-deps:
|
||||
wget -O lib/KD2/WebDAV.php 'https://fossil.kd2.org/kd2fw/doc/tip/src/lib/KD2/WebDAV.php'
|
||||
wget -O lib/KD2/WebDAV_NextCloud.php 'https://fossil.kd2.org/kd2fw/doc/tip/src/lib/KD2/WebDAV_NextCloud.php'
|
||||
wget -O lib/KD2/ErrorManager.php '${KD2FW_URL}ErrorManager.php'
|
||||
wget -O lib/KD2/WebDAV/Server.php '${KD2FW_URL}WebDAV/Server.php'
|
||||
wget -O lib/KD2/WebDAV/AbstractStorage.php '${KD2FW_URL}WebDAV/AbstractStorage.php'
|
||||
wget -O lib/KD2/WebDAV/FileStorage.php '${KD2FW_URL}WebDAV/FileStorage.php'
|
||||
wget -O lib/KD2/WebDAV/NextCloud.php '${KD2FW_URL}WebDAV/NextCloud.php'
|
||||
wget -O lib/KD2/WebDAV/WOPI.php '${KD2FW_URL}WebDAV/WOPI.php'
|
||||
|
||||
server:
|
||||
php -S 0.0.0.0:8080 -t www www/_router.php
|
10
NEXTCLOUD.md
10
NEXTCLOUD.md
|
@ -1,12 +1,10 @@
|
|||
# Implement a server compatible with NextCloud desktop and mobile apps
|
||||
|
||||
FileRun
|
||||
Here are some random docs and thoughts on implementing a NextCloud-compatible WebDAV server.
|
||||
|
||||
https://docs.nextcloud.com/server/19/developer_manual/client_apis/OCS/ocs-api-overview.html?highlight=capabilities
|
||||
https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-status-api.html
|
||||
https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/index.html
|
||||
|
||||
The desktop client is the most annoying
|
||||
See also:
|
||||
* [NextCloud WebDAV API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/index.html)
|
||||
* [Capabilities](https://docs.nextcloud.com/server/19/developer_manual/client_apis/OCS/ocs-api-overview.html?highlight=capabilities)
|
||||
|
||||
## Two different login flows
|
||||
|
||||
|
|
57
README.md
57
README.md
|
@ -1,32 +1,45 @@
|
|||
# KaraDAV - A lightweight WebDAV server, with NextCloud compatibility
|
||||
|
||||
This is WebDAV server, allowing to easily set up a WebDAV file sharing server compatible with NextCloud clients with no depencies and high performance.
|
||||
This is simple and lighweight WebDAV server, allowing to easily set up a file sharing server compatible with WebDAV and NextCloud clients. It has no depencies and good performance.
|
||||
|
||||
The only dependency is SQLite3 for the database.
|
||||
It is written in PHP (8+) The only dependency is SQLite3 for the database.
|
||||
|
||||
Although this is a demo, this can be used as a simple but powerful file sharing server.
|
||||
Its original purpose was to serve as a demo and test for the KD2 WebDAV library, which we developed for [Paheko](http://paheko.cloud/), our non-profit management solution, but it can also be used as a simple but powerful file sharing server.
|
||||
|
||||
This server features:
|
||||
## Features
|
||||
|
||||
* User-friendly directory listings for file browsing with a web browser, using [WebDAV Manager.js](https://github.com/kd2org/webdav-manager.js)
|
||||
* Upload directly from browser, using paste, or drag and drop
|
||||
* User-friendly directory listings for file browsing with a web browser, using our [WebDAV Manager.js](https://github.com/kd2org/webdav-manager.js) client
|
||||
* Upload directly from browser, using paste or drag and drop
|
||||
* Rename
|
||||
* Delete
|
||||
* Create and edit text file
|
||||
* Create and edit text files
|
||||
* Create directories
|
||||
* MarkDown live preview
|
||||
* Preview of images, text, MarkDown and PDF
|
||||
* Editing of Office files using Collabora or OnlyOffice
|
||||
* WebDAV class 1, 2, 3 support, support for Etags
|
||||
* No database is required
|
||||
* No database sever is required
|
||||
* Multiple user accounts
|
||||
* Share files for users using WebDAV: delete, create, update, mkdir, get, list
|
||||
* Share files using WebDAV: delete, create, update, mkdir, get, list
|
||||
* Compatible with WebDAV clients
|
||||
* Support for HTTP ranges (partial download)
|
||||
* Support for HTTP ranges (partial download of files)
|
||||
* Support for [RFC 3230](https://greenbytes.de/tech/webdav/rfc3230.xhtml) to get the MD5 digest hash of a file (to check integrity) on `HEAD` requests (only MD5 is supported so far)
|
||||
* Support for `Content-MD5` with `PUT` requests, see [dCache documentation for details](https://dcache.org/old/manuals/UserGuide-6.0/webdav.shtml#checksums)
|
||||
* Support for some of the [Microsoft proprietary properties](https://greenbytes.de/tech/webdav/webdavfaq.html)
|
||||
* Passes most of the [Litmus compliance tests](https://github.com/tolsen/litmus)
|
||||
* Passes most of the [Litmus compliance tests](https://github.com/tolsen/litmus) (see below)
|
||||
* Supports WOPI, for editing and viewing of documents using OnlyOffice, Collabora Online or MS Office.
|
||||
|
||||
### NextCloud/ownCloud features
|
||||
|
||||
The following ownCloud/NextCloud specific features are supported:
|
||||
|
||||
* [Direct download](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html#direct-download)
|
||||
* [Chunk upload](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/chunking.html)
|
||||
* `X-OC-MTime` [header](https://gitlab.gnome.org/GNOME/gvfs/-/issues/637) to set file modification time
|
||||
* Login via app-specific passwords (necessary for NextCloud desktop and Android clients)
|
||||
* Thumbnail/preview of images and files
|
||||
* Workspace notes (`README.md` displayed on top of directory listing on Android app) and workspace notes editing
|
||||
|
||||
## NextCloud/ownCloud compatibility
|
||||
|
||||
This server should be compatible with ownCloud and NextCloud synchronization clients (desktop, mobile, CLI).
|
||||
|
@ -39,14 +52,7 @@ It has been tested with:
|
|||
* ownCloud Android app 2.21.2 (F-Droid)
|
||||
* [NextCloud CLI client](https://docs.nextcloud.com/desktop/3.5/advancedusage.html) 3.1.1 (Debian) *-- Note: make sure to pass options before parameters.*
|
||||
|
||||
The following NextCloud specific features are supported:
|
||||
|
||||
* [Direct download](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html#direct-download)
|
||||
* [Chunk upload](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/chunking.html)
|
||||
* `X-OC-MTime` [header](https://gitlab.gnome.org/GNOME/gvfs/-/issues/637) to set file modification time
|
||||
* Login via app-specific passwords (necessary for NextCloud desktop and Android clients)
|
||||
* Thumbnail/preview of images and files
|
||||
* Workspace notes (`README.md` displayed on top of directory listing on Android app) and workspace notes editing
|
||||
Note that even though it has been tested with NC/OC clients, KaraDAV might stop working at any time with these clients.
|
||||
|
||||
## WebDAV clients compatibility
|
||||
|
||||
|
@ -57,6 +63,7 @@ The following NextCloud specific features are supported:
|
|||
## WOPI clients compatibility
|
||||
|
||||
* Tested successfully with Collabora Development Edition (see [COLLABORA.md](COLLABORA.md))
|
||||
|
||||
## Future development
|
||||
|
||||
This might get supported in future (maybe):
|
||||
|
@ -65,7 +72,7 @@ This might get supported in future (maybe):
|
|||
* [NextCloud sharing](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-share-api.html) (maybe?)
|
||||
* [Partial upload via PATCH](https://github.com/miquels/webdav-handler-rs/blob/master/doc/SABREDAV-partialupdate.md)
|
||||
* [Resumable upload via TUS](https://tus.io/protocols/resumable-upload.html)
|
||||
* [WebDAV sharing](https://evertpot.com/webdav-caldav-carddav-sharing/)
|
||||
* [WebDAV sharing if it ever becomes a spec?](https://evertpot.com/webdav-caldav-carddav-sharing/)
|
||||
|
||||
This probably won't get supported anytime soon:
|
||||
|
||||
|
@ -82,10 +89,17 @@ This depends on the KD2\WebDAV and KD2\WebDAV_NextCloud classes from the [KD2FW
|
|||
|
||||
They are lightweight and easy to use in your own software to add support for WebDAV and NextCloud clients to your software.
|
||||
|
||||
## Similar software
|
||||
|
||||
* [Davros](https://github.com/mnutt/davros/) used to be compatible with NextCloud client [before version 2.5.0](https://github.com/owncloud/client/issues/6775)
|
||||
* [FileRun](https://filerun.com) is a proprietary solution compatible with the NextCloud Android app
|
||||
|
||||
## Litmus compliance tests
|
||||
|
||||
Tests were performed using litmus source code as of December 13, 2017 from [the Github repo](https://github.com/tolsen/litmus).
|
||||
|
||||
We are not aiming at 100% pass, as we are mainly targeting file sharing, so we are not currently trying to fix rare `PROPPATCH` issues, but pull requests are welcome.
|
||||
|
||||
```
|
||||
-> running `http':
|
||||
0. init.................. pass
|
||||
|
@ -223,7 +237,8 @@ But they mostly pass with litmus 0.13-3 supplied by Debian:
|
|||
40. finish................ pass
|
||||
<- summary for `locks': of 41 tests run: 38 passed, 3 failed. 92.7%
|
||||
-> 2 warnings were issued.
|
||||
````
|
||||
```
|
||||
|
||||
## Author
|
||||
|
||||
BohwaZ. Contact me on: IRC = bohwaz@irc.libera.chat / Mastodon = https://mamot.fr/@bohwaz / Twitter = @bohwaz
|
||||
|
|
Loading…
Reference in a new issue