I was looking for a way to host my calendar and contacts. I looked into Owncloud and tested it but found to be way too much for what I needed. It has it's own ecosystem with an online store. I just need to backup my data.
I found sabre to be perfect. Its barebones as you need it to be. I use DAVx5 on android and add it as an account then changed my calendar/contact's default to that. So now my PC can push notifications to my phone and vise versa using thunderbird.
I enjoyed it so much that I use it to sync data to/from my phone 247. I have my music folder symlinked to sabre and using FolderSync it tries to copy the music anytime I'm connected to wifi. So, if I download a song I know that all my music will be auto copied to my phone.
Same goes for my camera. All my photos are auto copied over to my server. This is huge because my server is setup to run auto backups. It's basically icloud but entirely in my control.
Maybe there's a modern version of my setup, but this has been so great and ultra lightweight and works anywhere.
Really nice to hear that people still have love for this project! Heart warming after all these years. I no longer maintain the project but the people that have taken over have done a great job keeping everything modern (even though the website has become a bit stale).
Really nice to have a tiny bit of legacy, the new open source projects I've been working on have never really quite picked up in the same way.
I have photos backup with FolderSync but just using Samba (since the NAS will be accessed by Windows clients anyway), is WebDAV necessary?
Oh, you said wifi and I read "home wifi", So I guess the WebDAV is exposed to the Internet and the phone can upload from any (wifi) connection in the world? That's more clever than my setup!
I have it setup to sync anywhere with wifi. I bought a domain and set it up to my IP using dyndns (I just have it running on my regular consumer internet, not a dedicated business line with a static IP). By wifi I mean any wifi with internet access. I could use it over LTE but I don't need to burn up all my data pushing backups.
I have it behind an apache service which is password protected and only accepts https. As well, it uses fail2ban. If you ever ran a web server, you'll know your server will get bot scans 247. These only occur on the root domain and direct IP, so I disabled all root/direct IP access and moved it to a subdomain. I've never had issues.
I use samba as well, but that's only because this server works as my NAS as well. I setup a dedicated DAV folder on the NAS directory and give it extreme user restrictions, just incase. It's just a nice central server to keep all my devices in sync.
I assume you don't expose the Samba to the internet? I'm still wondering if there's a reasonable way to do this (side-channel authentication/"port knocking"?).
Wireguard / tailscale or similar vpn should be fine?
I've toyed with tailscale and ZeroTierOne - both should work fine with Bonjour/zeroconf if you need it - and handle routing (using lan when devices are on same net, routing over the internet when not).
There's also Nebula from slack (but I've not tried it).
Would love to see tailscale work with kernel wireguard clients (for better performance) - AFAIK today you'll have to pick one: easy setup with smart routing (ZeroTierOne / nebula / tailscale) - or - best in class performance with kernel space wireguard.
I don't expose samba no, but at one point I did run openvpn access. I set the client config for the VPN to only forward 192.168.x.x through the vpn, but not all other traffic. So if I go to a coffee shop, my windows laptop would act entirely like it was still on my lan and my mounted network drive would fully connect as normal.
I removed that service since it was kind of clunky and always had connection issues. Perhaps I should try it again.
I self-host my family's calendar and contacts using sabre/dav, and I've been very happy with it. It provides CalDAV, CardDAV, and per-user WebDAV shares.
For clients, I use Evolution on Linux and DAVx5 [1] on Android.
I wrote a FreeIPA integration plugin [2] to do authentication and group memberships using my local IPA domain.
I worked on a company that had multiple issues with mounted folders using smb across a wide variety of desktop clients (that was around 2012).
Customers would name their files with weird characters, would use OS X folder colors and expect them to stick, etc. We needed to support all of that.
One day we tested replacing smb with webdav mounts powered by a thin layer based off sabre/dav. It just worked out of the box. All of our issues were gone. It's client support is the best I've seen.
It also allowed us to create virtual files, setup caching and a lot of other goodies that seemed impossible with smb.
I don't remember exactly how we implemented permissions, but I remember that at some point (after extending sabre/dav pretty hard) we did all kinds of customer configuration (including ACL) based on virtual files. Admin would just change a virtual file with roles and we would receive it on our implementation as a method call.
I used the sabre core libraries to create a slack-backed CardDAV server for a hackathon. Was super-fun to get it working, and the demo was quite powerful - you scan a QR code to OAuth via Slack, and download a iOS mobileconfig that adds the CardDAV profile to your iPhone.
Unfortunately, Android not supporting CardDAV made it a half-way solution, so it wasn't as seamless as you'd like. It was super fun to build using sabre, but it was limited by the CardDAV decisions. You can't make a read-only CardDAV server that easily, for eg - the client will optimistically make local changes, and assume that server is just temporarily down when it returns a non-2xx code.
I might still polish it and release it, since it was a super-cool tool, if only for iOS users.
Haven't heard about WebDAV and related HTTP extensions here for some time. I guess static web space management through the webdav protocol is below the average HNer who rather wants "web apps" for reasons of financial wellbeing ;) Interestingly, the history of versioning of static web "resources" through webdav (Delta/V [1]) is strongly connected to subversion (svn), which as a SCM has long made way for git, but kindof lives on in mod_dav_svn.
I've recently gotten into it and I hope it makes a come back. It's pretty cool. I'm currently working to get a sqlite fuse system set up and use with webdav. It'd be very entertaining to simply PUT a file on nginx and have that turn into an insert into a database :)
I was attempting to simplify the multi-version php setup I have in my small-scale server setup and noticed sabre needs PHP 5.4 and apparently doesn't run with php7 [1]. I wonder how much interest there is to upgrade that dependency at sabre. My un-informed opinion was that it's a good idea to move with your php setups.
The page has OwnCloud's logo on there, but OwnCloud recently introduced a ground-up rewrite, resulting in a single-binary deployment (written in Go). Does anyone know if Sabre/dav's PHP is still in the cards at OwnCloud?
For CardDAV/CalDAV I'd be interested in a comparison to Radicale...
Really Owncloud become Pydio?
I was pissed of about that decission cause I already had some (little) php code for plugins and multi-tenant Pydio setups and with Go rewrote it broke everything for me.
Very interesting, I didn't know about them. It seems that they have a basic free plan, for a single user with two devices. So maybe one laptop and one iPhone, and you can move your calendar and contacts out of Google.
I get the impression that sabre/dav markets itself more as a platform on which one can build their own CalDAV/CardDAV applications.
I run it standalone, because I wanted a CalDAV system that could integrate with my local FreeIPA domain via LDAP. The only other project that met this requirement was davical [1], but it seemed much less active.
I ended up writing my own FreeIPA/LDAP authentication and principal backends [2] for sabre/dav. I believe they have a PDO backend built in, if you want to store your users in a database.
Basically, you composer install sabre/dav and wire all the components together in server.php. You'll also want to redirect the /.well-known/{caldav,carddav} URLs with a rewrite rule in your webserver. Most of this is described in their documentation [3].
If you're looking for turn-key solution with an administration GUI, you probably want Baikal [4], which is based on sabre/dav.
Hi, I'm the OG author. When I was a teenager the Sabretooth tiger was my favourite animal. The project also preceeds that office episode by a few years (I think I started in 2005), so it was a bit funny to see that episode.
Just want to thank you for your work. The fact that the project is still going strong and with only a few other viable OSS alternatives shows how valuable it is. Every other project in this space lacks something.
Nextcloud is a cloud with file sharing and all kinds of features including a calendar that can be synced via webdav. Sabre is just a calendar/webdav server without all the filesharing cloud stuff.
I found sabre to be perfect. Its barebones as you need it to be. I use DAVx5 on android and add it as an account then changed my calendar/contact's default to that. So now my PC can push notifications to my phone and vise versa using thunderbird.
I enjoyed it so much that I use it to sync data to/from my phone 247. I have my music folder symlinked to sabre and using FolderSync it tries to copy the music anytime I'm connected to wifi. So, if I download a song I know that all my music will be auto copied to my phone.
Same goes for my camera. All my photos are auto copied over to my server. This is huge because my server is setup to run auto backups. It's basically icloud but entirely in my control.
Maybe there's a modern version of my setup, but this has been so great and ultra lightweight and works anywhere.