Skip to content

A simple CalDAV (calendar) and CardDAV (contact) server.

License

Notifications You must be signed in to change notification settings

RemcoTukker/Radicale

 
 

Repository files navigation

Rationale

My trifecta of social digital needs is as follows:

  • keeping track of my contacts and calendar
  • organizing and sharing photos and other files
  • letting my inner social circles know what im up to and find out what they are up to And I don't want to share any of that information with third parties (except for a disinterested hosting party if im not self-hosting).

As far as I know there's currently no simple, ready-made solution for this. NextCloud can be set up to do all these things, but it's pretty hard to administer and its not particularly performant either. There are various fediverse applications that can do part of the above, but it is more aimed at sharing stuff with a wider audience.

So lets make our own, while stealing all the best ideas from other projects!

What to build:

We're using python for now.

Radicale: Simple calendar and contact server with extremely low administrative overhead. Add a frontend for the calendar (infCloud) Support multiple users on 1 server (with access to server: create account and give user access if its lost) Find or create a frontend for managing contacts, in particular social circles Couple with file uploading find a way to share files (with a link i suppose at first?) file management (low prio, important but low-risk/easy) Finally add a 'timeline' to see and share what your social circles are up to, first only on your own server, afterwards come up with a syncing mechanism (is activitypub useful for this or not at all?? Or maybe scuttlebutt??)

stretch goals: calendar sharing and appointment assistent proper account management self-hosting support (makes file sharing and syncing info more difficult)

Out of scope: plugin system (for now) e2e encryption (for now, see etebase / etesync) direct messaging (maybe this should be handled by a Matrix client?) receiving emails (i guess)

Relevant links:

https://baak6.com/baikal-openbsd-fossdroid/ "In this tutorial I explain how I use Baïkal running on OpenBSD to host my own calendar and address book, and how to consume them with FOSS apps on Android."

Auth:

https://github.com/betagouv/django-magicauth "Django Magicauth brings password-less authentication to your project." (less relevant i think) https://www.twilio.com/blog/passwordless-authentication-system-django-twilio-verify-sendgrid "Build a Passwordless Authentication System Using Django, Twilio Verify, and SendGrid"

Related projects:

https://github.com/awesome-selfhosted/awesome-selfhosted#calendar--contacts---caldav-or-carddav-servers List of other self-hosted calendar software

https://en.wikipedia.org/wiki/ActivityPub ActivityPub protocol (for now this is out of scope but [TODO] i have to read up on what it is exactly, as maybe we should use this.)

https://www.etebase.com/ and https://github.com/etesync/ Secure e2e encrypted and privacy respecting sync for contacts, calendars, tasks and notes with clients available on all major platforms, made in python/django. Self-hosting is supported and pretty similar to what I want to do. (However, I want to add sharing between contacts, which is more complicated with e2e encryption, which is why I consider e2e encryption out of scope for now)

https://bonfirenetworks.org/ Implements social circles just like I want to do. Seems to use activitypub, but I don't yet see how that interacts with social circles (elixer)

https://pixelfed.org/ Self-hosted photo sharing server (php)

https://scuttlebutt.nz/ Fully p2p social network created for offline use as well (clients: https://www.planetary.social and https://www.manyver.se )

https://darkcrystal.pw/ "Dark Crystal is a set of protocols, libraries, techniques and guidelines for secure management of sensitive data such as cryptographic keys. The idea is to make key management easy by emphasising trust between peers rather than individual responsibility."

[TODO link and description] Mastodon & Friendica

[TODO link and description] Nextcloud (php)

https://matrix.org/ Matrix standard for direct messaging and chatrooms

Radicale

The repository is based on Radicale. Here is its original README:

Test Coverage Status

Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts) server, that:

  • Shares calendars and contact lists through CalDAV, CardDAV and HTTP.
  • Supports events, todos, journal entries and business cards.
  • Works out-of-the-box, no complicated setup or configuration required.
  • Can limit access by authentication.
  • Can secure connections with TLS.
  • Works with many CalDAV and CardDAV clients
  • Stores all data on the file system in a simple folder structure.
  • Can be extended with plugins.
  • Is GPLv3-licensed free software.

For the complete documentation, please visit Radicale master Documentation.

About

A simple CalDAV (calendar) and CardDAV (contact) server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 82.7%
  • Python 11.4%
  • CSS 2.9%
  • HTML 2.7%
  • PHP 0.3%
  • Dockerfile 0.0%