An interesting alternative is Radicale [1].
Both are very lightweight.
I mainly chose Radicale over Baïkal because it is written in Python.
On the client side DAVx⁵ [2] do a good job.
I've been using Radicale for a few years now and it has been fantastic. Extremely lightweight but also quite flexible with its permissions model since we have a shared family calendar.
The backend storage is simply ics/vcf files and while I'm sure it's not the most efficient if you had a large number of users, for our small group it's been perfect and very satisfying knowing your data is there in plain text files.
Although if I'm honest I'm just cheap and wanted to get by on the smallest VM offered by my cloud provider and NextCloud was too demanding for that.
> Extremely lightweight but also quite flexible with its permissions model since we have a shared family calendar.
How are you doing this?
A while ago I skimmed the documentation for a couple of CalDAV servers to try and figure out how I could self-host a shared calendar, but couldn't see an easy way to do this.
I've just done some more searching, and it seems there are two suggested ways to do this with Radicale:
* create a separate account for the shared calendar, and tell everyone who needs write access the password
* create the calendar in one use's directory, and add a symlink to it in the user directories for any other users who need write access.
Both of which seem like a bit of hack compared to bring able to explicitly state that a list of users have write access to a calendar in a config file or through a UI.
I created a collection with the name of our domain name and then used this example[1] to regex the domain out of the user's login email address to allow them access to the shared collection.
I tried Baikal but Radicale was much easier to use and set up. It’s been solid for the last two years for me.
That said I try to avoid self hosted services written in Python, especially if they use Django. I’ve had nothing but issues dockerizing them. I just want a static binary ideally.
I’ve been using radicale for contacts and calendar for quite a few years now. Plays nice with iOS Mail and Contacts as well as Gnome Evolution and has overall been a great experience.
How do you host your email? I figured it would be a pain to not have my contacts and email very tightly integrated, so I just keep it all with Fastmail.
I did not need a tight integration between my phone contacts and my mail contacts.
However, I think a good mail client such as thunderbird could do a good job.
I am using my own domain and I am using OVH as my mail provider.
There are plenty of good alternatives for calendar/contact sync servers, but I haven't seen any good, native clients that work on modern BSD (or Linux) desktops. Both Evolution and Thunderbird tend to be slow, clunky, glitchy, generally doing pretty poorly when put side-by-side with e.g. the built-in macOS counterparts.
I'm trying to use an OpenBSD laptop in parallel with a macOS desktop, and while it's perfect for coding and OK for web browsing, the rest of the desktop experience is just... not there.
I went all in ~1 month ago after using on servers since late 2000s. My findings:
1) can't have something like a /var mounted on iscsi. The Rd kernel doesn't support it.
2) help for DEs is patchy. In my example XFCE behaves differently on major linux distributions than mine. Intellij too is slightly different.
3) there are some bugs in upstream software which as an OpenBSD user are simply unacceptable to me. I had to disable compositing.
4) things like Bluetooth for some people (not me) may be a deal breaker. Bluetooth sound works perfectly.
5) if you want to use myfavsoftware X, you may have it in ports. But the reason you want to use it relies on mynotfavsoftware Y which may not be available on OpenBSD.
6) if you use OpenBSD you will become a cynic because of bad documentation most places elsewhere. I mean this seriously, I view rest of the world as moving on to just getting things done without giving thought to underlying correctness. Maybe it's a good thing, maybe not.
That said:
1) it is the easiest thing to operate. Like really easy. You know which file is doing what, when.
2) there are no gotchas. This is a very predictable and consistent system.
3) if it's not there in documentation, you don't have to ask "how to x", be rest assured if it's not there in the docs, it is not available, else it'd have been there.
4) contrary to public opinion, very very helpful community.
I think I am a fanboy. Previously have used (rev chronological order) - pop!os, enso OS, windows 10, snow leopard (another brilliant one), freebsd for a month, Ubuntu, redhat 5, XP, 2000, NT 4, 3.11. By far OpenBSD is something I have loved the most.
> if you use OpenBSD you will become a cynic because of bad documentation most places elsewhere.
I found it the other way around, I feel inspired to write better documentation.
> things like Bluetooth for some people (not me) may be a deal breaker.
I'm spoiled by Apple. It must either work really well, or otherwise indeed I won't mind it not being there.
> Bluetooth sound works perfectly.
What do you mean? The whole BT subsystem got rm -rf'd years ago. Or are you using some sort of a 2.4GHz dongle that just shows up as an audio interface?
> contrary to public opinion, very very helpful community.
Indeed, you just need to show you've done basic research before asking questions. Which goes a very long way in any case.
> I think I am a fanboy.
Oh me too. I've been using OpenBSD for 6-7 years, on & off, as my backup / "code in peace" machine. I absolutely love the base system and I think it does what it's supposed to do extremely well.
I have very mixed feelings about the state of the free desktop environments though, again, spoiled by Apple. So I tend to stick to minimalist solutions such as dwm. I could probably switch to OpenBSD full time any time, except I have plenty of non-free software I need or want to run. Between macOS and Windows, at least Macs are decent BSDs.
>Or are you using some sort of a 2.4GHz dongle that just shows up as an audio interface?
Yeah, stupid me never ever thought of that;-)
>So I tend to stick to minimalist solutions such as dwm.
I tried my hand at tiling WMs with pop!OS, I just couldn't wrap my hand around it (pun intended). I really admire people who work through all the keyboard shortcuts. It's just not for my capabilities.
> I tried my hand at tiling WMs with pop!OS, I just couldn't wrap my hand around it (pun intended). I really admire people who work through all the keyboard shortcuts. It's just not for my capabilities.
I think Windows actually did a great job of making tiling more mainstream - the way windows automatically snap to the left/right half of the screen. macOS could use something like that - I've hacked something similar using Hammerspoon[1] but I think Windows does it better: it's very discoverable for regular users, and has a very intuitive shortcut for the power users (win+left/right/up).
The world of minimalist tiling WMs suffers from the elitism factor. It's a shame that you can't get the right dose of minimalism, without making this huge leap. I think people making most of these WMs misunderstand good UX design: it's not about accommodating non-power users, it's about lowering the barrier for everyone, hackers included.
I will give it a try, however I personally dislike KDE, it feels pretty much like a kitchen sink of options and preferences, yet I somehow still can't configure it to feel "right".
I disagree. Some piece of Nextcloud always flies off the rails.
In contrast, with Baikal, every time I get a new phone, I have to remember I self host it, then figure out which machine it's running on. Other than that, it's completely maintenance free.
(Usually I'm nervous that sync broke since I last checked three+ years ago, so I download a backup of the DB and confirm it's actually working!)
I tried using Nextcloud several times in the past, but the experience on Android was always sketchy for me. Contacts and calendar that would randomly (and silently) stop synchronizing, their mobile app stuck on endless spinner when browsing photos and files.
It has pretty web interface, but it was just unusable where it mattered.
That said, for file syncs I do prefer Seafile over Nextcloud. I don't think I'm the only one that prefers Nextcloud just for contact/calendar sync because Mailcow uses the Nextcloud platform just to accomplish that, with file sync disabled.
On desktop the sync integration is fine. It's only on mobile that the experience is lacking.
Try feeding it a redis instance. That caused a "several orders of magnitude" improvement in interface responsiveness and my weird syncing problems stopped immediately.
I also disabled every module and plugin I didn't consider essential.
Same here, and I have many problems with the web interface too. And sometimes when I add an app to my Nextcloud user, the whole instance just stops working and I wasn't able to find a way to recover.
The impression I got was that the problem was not related to php being slow but just a general scalability problem. If go runs it 2x as fast, it will still fail with 2x as many photos which is very common. Maybe as part of the rewrite they will address this but I think photos is a fundamentally different problem to hierarchical file storage that they require being split up like how google photos is not part of google drive despite sharing the same storage usage quota.
Any experience interoping something like this with google calendar? I'd love to use something like this, but I can't fall back to having separate calendar apps for work and personal stuff.
I would be super interested to read a more detailed how-to on this. I use the crap out of Syncthing (although on iOS -- my daily mobile driver-- it is fairly limited what you can do with it).
I used syncthing until I switched to iOS and found it unworkable due to how bad the clients were for iOS.
Nextcloud is what I ended up using; you get file sync and contact/calendaring in one, and you can also use it to share files "externally" if need be, even flip on the chat module and use it to video-conference instead of zoom if you want.
I'm using sqlite as the backing database mostly because I'm a single user and don't put a ton of files into it. I also disabled every single module I didn't need. It was dog slow until I connected it to redis, which was a real game changer - near instant page loads and file sync. It is running on an ancient SATA SSD in a second-gen i5 laptop.
Yeah, for me I primarily use Syncthing just for syncing between servers and computer.
I switched to Migadu for my primary email which includes CalDav and CardDav. I also run Hydroxide in my K8s cluster for Protonmail syncing on Apple Mail -- I could also switch to that for CalDav and CardDav if I wanted to.
There isn't much I actually need Syncthing for on my phone nowadays. Even if I was back on Android I can't think of much I would need it for -- for my workflows.
> Nextcloud is what I ended up using
Nextcloud has always been one of those projects I appreciate so much but find so bloatey for me as a single user and always end up getting rid of shortly after I install it. I feel like if I had a team of users (work, friends or family) who fully committed to using it then I would love it.
Btw, none of this is meant as a criticism to your setup -- it sounds perfect!
Where did you see the info for setting this up with Migadu? I believe they've had it as an unadvertised beta feature and the only write-up I found is this older one:
Yeah, I reached out to their support a while ago to ask about it and they made me aware of the CardDav/CalDav instance at cdav.migadu.com. But yes, my understanding is the same as yours in that it is an unadvertised beta feature.
I can't remember the ports but if you point a CardDav/CalDav client at cdav.migadu.com they pick up the settings automatically. I've done this on iOS, Android, MacOS and Linux and they all seem to work perfectly for me with Migadu.
I do, but without Android and {card,cal}dav... Emacs/org-mode/org-agenda/org-contacts for in-Emacs usage (for instance for email/notmuch) and with classic LDAP on the homeserver for my VoIP phones...
Here's what you need to run a small NextCloud server:
* linuxserver.io container
* redis instance (enormous speed-up. Really, do this. Running a redis container is very painless.)
* use SQlite for the backend DB (unless you have a huge number of files)
* disable every module/plugin you don't NEED
Run a cron script that periodically fetches new images, kicks over the container, and purges old images.
Run another script that periodically tries to run updater.phar in the container, or notifies you when there's an update, or subscribe to the nextcloud RSS feed, etc.
I recommend overriding the defaults for deleted file behavior and versioning. Most folks don't want or need deleted files hanging around until 50% of your disk space is used, for example. The versioning defaults are fairly reasonable IMHO, but I decided I didn't care about anything past two months. Some folks who have lots of fast changing files will probably want to tweak the retention policy because it will save second-by-second versions for a few minutes to an hour (I forget exactly) and that could generate a lot of IO and SSD wear unnecessarily.
Done! I was dreading switching over from syncthing but it's been painless, and the NextCloud clients are all pretty slick and Just Work.
Yeah but are calendars and contacts that complex? Or rather, do they have to be complex? Never worked on such things myself, though I'd think the hardest part would be interoperability with the big boys
Nextcloud is pretty low maintenance in my experience, at least for a few users doing fairly normal things. I've been running it for about 1.5 years (calendar, tasks, documents) and haven't needed to do anything except bump versions.
It's no somuch that, as what's in the stack: OS+PHP+MySQL+Nginx+Other Dependencies.
How often do they need security patches or major version upgrades that might have breaking changes? How often will you need to replace the current stack with the Next Big Thing?
I've been self-hosting a blog for a while. At first, I used custom software, because blogging software didn't exist (I'm that old). I switched to Movable Type, but that project withered. I moved to Wordpress, but found I was spending more time running upgrades of the core and plugins then actually blogging.
I migrated to a static site generator, Jekyll, which seemed popular would solve the problem of security updates with dynamic code. My install broke multiple times as I changed laptops and Jekyll's dependency stack went through major version upgrades. Still, I was spending more time maintaining the stack then I wanted.
Now, there have been rumblings about the future of Jekyll as well. Maybe I should switch to a single-binary app like Zola to solve the dependency hell I've sometimes gotten into with Jekyll upgrades.
This is only the history of trying to self-host a personal blog from someone whose professional career has been web hosting in some form or another. Imagine also trying to self-host email, contacts, calendars a mastodon instance and other services as well.
We can still support a more diverse ecosystem of tech by not using the dominant providers and supporting companies which use open source software which people can self-host if they want to.
I support self-hosting, but the marriage to your own tech stack involves some significant work once the honeymoon is over.
I did not use the term in this context. I've never even heard of this until people pointing this out today. I just meant it as in bloated software. I don't live in America and English is not my first language.
I mean it's just true from the data that men's testosterone on average has cratered over the last couple generations. They shouldn't be consuming copious amounts of things to make that even worse
[1] https://radicale.org/v3.html [2] https://www.davx5.com/