(no title)
vbsteven | 4 years ago
This post was written several months ago and in the meantime I have given up on trying to cobble something together using existing solutions because they don't provide the extensibility that I want.
I'm building my own replacement from scratch focussing on tasks/projects/calendars first. The architecture is a postgres db exposing CRUD API endpoints and all changes are broadcasted over MQTT so I can easily hook into everything for automation and extension.
I have a desktop application in JavaFX and a mobile Android app so I can use Kotlin as one language across all clients and backend. Lots of code sharing going on for things like API models.
Const-me|4 years ago
Closed source, expensive, designed to be supported by professionals, you might need more than 1 server/VM to run them all, requires AMD64 processors.
Well tested (used by millions of people every day), relatively secure, not terribly hard to setup (follow installation guide / best practices documents carefully, and you should be fine).
Godel_unicode|4 years ago
vbsteven|4 years ago
But I want to move away from it because I want to 1) gain control over my data and 2) extend the system with automations.
Thats why I started researching open source and self hosted alternatives.
0xCMP|4 years ago
vbsteven|4 years ago
This turns out to be very hard to do based on CalDAV/WebDAV protocols because many clients and services implement the spec differently or only parts of it.
That's why I switched my approach and I'm writing my own backend storage layer that has my desired event system builtin on that layer (Using Kotlin/JVM for the backend, postgres for storage and MQTT for pub-sub to events). On top of that storage/api layer I'm building CalDAV/WebDAV support so external clients can connect to it.
Having my own HTTP+MQTT API makes it a lot easier to build modern clients as well. In fact because I chose Kotlin/JVM as my baseline and have already written a pure Kotlin client library I'm making a lot of progress on both desktop, android and cli tools to interact with the system.
asymmetric|4 years ago
Isn't that what WebDAV is?
mch82|4 years ago
Consider a haircut that will take 45 minutes & will invite two people (me & the barber), but the day/time is still undecided. Perhaps that sort of appointment can park at a placeholder date with infinite capacity until the real date is scheduled?
brongondwana|4 years ago
hammyhavoc|4 years ago
JoBrad|4 years ago
3np|4 years ago
Also, it could be worth to add Calendso to the list. Quite new project with a bit bigger scope than Sabre/Radicale. WebUI, recently added CalDAV.
https://github.com/calendso/calendso
foresto|4 years ago
> Does not handle authentication by default, needs to be handled by the reverse proxy
My Radicale instance validates users on its own, using credentials in an htpasswd file with bcrypt hashes. Doesn't that count as authentication?
vbsteven|4 years ago
unknown|4 years ago
[deleted]
donohoe|4 years ago
PostThisTooFast|4 years ago
[deleted]