Open stvhay opened 1 year ago
I thought this might be a good place to discuss DAV implementations for the future, if we are considering replacing NC at some point. In addition to @myfirstnameispaul 's great work summarizing options above, I found an interesting project that I think we should take a look at.
Here's a gist I wrote down some notes for getting started with Davis. I managed to get it up and running, autodetect with Thunderbird, and send a calendar invite.
https://gist.github.com/stvhay/310862d92f481da18eeda96066ffd507
In terms of database backup and restore, it may be as simple (?) as:
mysqldump db_name > backup-file.sql
mysql db_name < backup-file.sql
I also did the same thing with Baïkal. Good results, but the key there will probably be to figure out how to interact with the web administration tool because it doesn't have a good way to sync the IMAP backend, and not a REST API for the admin which I can see.
Unfortunately, I didn't keep my notes and I don't recall why I didn't add Davis to my list. Typical reasons I will rule out projects:
I've still got too much going on to spend real time here, but this NC madness needs to end and will be I think a great contribution to figure out a better solution.
Also, whenever it is migrated we should create very clear documentation because there are many people using NC file sharing between users, so removing that feature from MiaB should include a clear migration path to a standalone NC server, or something, so we aren't just saying "no longer supported, have a nice day" because I really hate when projects do that to me.
Additionally, I really feel that MiaB should include something like a 500-character HTML (support hyperlinks, colors, bold, etc.) max message length in the dashboard new version notifications to provide only critical information related to the next version upgrade. Because MiaB version upgrades are usually so trouble-free, there will be many users who do not review anything only to discover they've removed NC and no longer have access to their file-sharing tool, likely turning an estimated 15-minute downtime to half a day or more.
Unfortunately, I didn't keep my notes and I don't recall why I didn't add Davis to my list. Typical reasons I will rule out projects:
* Appears not very popular - Even well-maintained projects need to have a large user-base or MiaB will end up being the beta/RC testing pool, which is probably not a good fit for the majority of MiaB installs. I usually will search beyond just the GitHub repo because many projects do not use GitHub. Even mature well-maintained projects may have a nearly dormant-appearing GitHub repo, but remain active on GitLab, SourceForge, or self-hosted
Davis does not look like it is used by a ton of people. But the good news is that it is relatively simple, like Baikal, and there is an active developer maintaining it, like Baikal.
* Exceptionally long inactive periods - Usually this indicates only fixing show-stopper bugs for the maintainer's own installs.
Yeah, it doesn't look that bad, but it is one person maintaining it. Unfortunately the landscape here is pretty bleak in general.
* Young - MiaB should be using reasonably mature projects, so same reasons as first bullet above for not listing.
Davis has been around since 2019.. So its not new, but not old either.
* Requires some sort of container. This one is just my opinion, but containers are for SaaS, not standalone installs.
No container required.
I've still got too much going on to spend real time here, but this NC madness needs to end and will be I think a great contribution to figure out a better solution.
Also, whenever it is migrated we should create very clear documentation because there are many people using NC file sharing between users, so removing that feature from MiaB should include a clear migration path to a standalone NC server, or something, so we aren't just saying "no longer supported, have a nice day" because I really hate when projects do that to me.
I can say this -- Davis has the basics. you can do CalDAV, CardDAV, and WebDAV with it. It doesn't have the greatest documentation, but its all there. Migrations scripts will be tricky. Files are easy, but I think the contacts and calendar will be much more difficult. That is probably true of any non-nextcloud solution though.
Additionally, I really feel that MiaB should include something like a 500-character HTML (support hyperlinks, colors, bold, etc.) max message length in the dashboard new version notifications to provide only critical information related to the next version upgrade. Because MiaB version upgrades are usually so trouble-free, there will be many users who do not review anything only to discover they've removed NC and no longer have access to their file-sharing tool, likely turning an estimated 15-minute downtime to half a day or more.
If we end up torching NC, I agree we need to give the users a big heads up. I mean, I can go either way with it. NC is fine. Yeah its kinds slow and a pain in the arse to keep up to date. But it can be made to work and is working.
Here are what I see as the main benefits of Davis:
Here are some weak points:
Of all the options you listed, and I think its a very thorough list, here's what I think about them:
Migration Challenges:
Disclaimer: I am the author of this software and I don't want to spam. But it looks like our software Group-Office https://www.group-office.com meets all your requirements!
Some thoughts and ideas from the maintainer of the carddav plugin for Roundcube:
https://github.com/mstilkerich/rcmcarddav/issues/454#issuecomment-1769079025
Could you please share an update on this topic? In my greenfield installation directory /usr/local/lib/owncloud allocates ~630MB w/o using Cal/CardDav. Imo Nextcloud is not a thin solution for Cal/CardDav only.
Would it be possible to give end-users who want to deploy MiaB from scratch the option to select which Cal/CardDav service to use: Nextcloud or thin service? This would allow MiaB development to delegate responsibility for Cal/CardDav migration from Nextcloud to another service to end-user.
I am very happy with SOGo. For a demo of the integration using Ansible: https://github.com/progmaticltd/homebox
- If we want to do this completely automagically, it will involve figuring out how to pull the calendar and contacts OUT of Nextcloud and then into the new implementation automatically. Right now, I have no idea how to do this. In addition to this, I've run into some pretty serious bugs in the Nextcloud contacts export function. Using Thunderbird, I've also failed a workflow of exporting and importing my calendar from and to Nextcloud (due to a missing STATUS field in on of my events. Thunderbird just exits out with the error when this happens so not graceful at all. I was successful using BusyCal and BusyContacts, a Mac calendar app you have to pay for to use. All this is to say, I think that this problem is going to be very sticky to generalize.
After looking for a bit on the Nextcloud help forums I've found https://codeberg.org/BernieO/calcardbackup which seems to implement the required functionality.
@myfirstnameispaul wrote: