WebDAV share with Lighttpd

As an alternative to Samba or NextCloud you may try to use WebDav. You’ll just need to install less than 1mb of dependencies and it will work much faster than PHP based NextCloud. You can mount the WebDav share as a network disk in Windows or use with KODI.
I created an instruction WebDAV with Lighttpd on Turris Omnia (TurrisOS/OpenWRT).
Please test it because there is a lot of hidden pitfalls.
I tried to not modify any file from packages to avoid loosing configs after update. That’s why they may look confusing.

Dear Turris Team, could you add the WebDav sharing option into reForris as you did for Samba, DLNA and other features?
That would be really great especially that it’s really not possible to configure without SSH command line.

2 Likes

Nice, thank you. Actually Nextcloud also uses WebDav, so a “normal” webdav client would not see the difference between your approach and Nextcloud… just obviously the admin side of things is quite different…

1 Like

I also added a CORS headers Lighttpd WebDAV+BasicAuth+CORS · GitHub

Here on a Wiki I added a list of PWAs that works with WebDAV+CORS

Any news?

Apparently the Turris team did not integrate it into reForris.

Are there problems to do that?

Nobody from the Turris team replies!?

If money is an issue I am willing to pay to get it resolved

1 Like

Hi Franz,

Sorry for the late reply. I’m not from the Turris team but I made the proposal.

I have the webdav configured on my Turris but I need to update instructions and make a video.

If you just need a help to setup the dav share you can just ask me or call in telegram stokito or in matrix by @stokito:matrix.org

There are few issues with the webdav most important are:

1 The Lighttpd on Turris runs with root user and has an access to any path on the file system. This is not secure.

On a vanilla OpenWrt the Lighttpd daemon runs with www-data group and this is also a problem because all uploaded files will have the group but also you need to change owner from root to www-data before sharing.

2 If the wevdav is misconfigured then the entire lighttpd won’t start. But it’s also used for admin dashboard reForis/Luci and this is dangerous. Maybe we can start another instance of lighttpd on a separate port but then you need to remember the port or setup a reverse proxy behind it (which is again the lighttpd or nginx). There may be some trick used to listen to the same port but on different IP addresses e.g. for the public IP one instance of Lighttpd but for internal network another one. This means that we may need to create /etc/config/lighttpd with support of multiple instances. And LUCI app to it, similar to uhttpd.
Another one possible solution is to have a separate app like Seafile (Python), Phodav (C/Glib) or even Rust based.
See full list here awesome-webdav/readme.md at main · WebDAVDevs/awesome-webdav · GitHub

As another option this can be something in PHP based on sabre/dav but this is exactly the same as NextCloud with bad performance.

3 The WebDAV is not so often used for local networks because Samba is just better supported. Many dav clients have exactly the same bugs and servers don’t support some key features like checking directory size. So since it’s not so popular the priority of the issue would be minor. But still I would prefer it over SMB for many reasons one of the most important for me is that I can understand how it works. I believe this is a chicken-egg problem and once users will have an easy way to make a dav share they’ll prefer it.d

But this is the only option if you wish to have a personal cloud accessible from the internet.

Ideologically this is a bigger problem: are we going to support self hosting e.g. access from the internet or not. From a security perspective the Turris is not ready for this and some additional measures should be applied like automatically issue of TLS cert.

Also I have some idea for automounting of USB disk Ubus: listen mount of a USB disk - Installing and Using OpenWrt - OpenWrt Forum

Please leave your thoughts

2 Likes

Hi, here I published result GitHub - yurt-page/openwrt-lighttpd-public: OpenWrt configuration for Lighttpd with WebDAV and autosharing

I’ll need to add more description and make a video tutorial but looks like not on this week. So if you need asap then try and play yourself and ask questions