LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   Question: Running your own "calendar server"? (https://www.linuxquestions.org/questions/linux-software-2/question-running-your-own-calendar-server-4175627141/)

haertig 04-06-2018 10:40 AM

Question: Running your own "calendar server"?
 
I am investigating setting up my own "calendar server", and looking for suggestions/pointers of what direction to head. Basically, I want to end up with something similar to Google Calendar, but WITHOUT sending all my personal data up to a cloud provider or someplace like Google that uses cookies/javascript/etc. to track the heck out of you.

Below is my current wish list of features. I won't call them requirements yet since I don't know what may or may not be available. But the stuff below is what I "wish" were available.

Is any of this kind of stuff available? Or am I relegated to using some cloud provider and just have to accept the privacy implications of that?

I do currently run my own NextCloud server. That purportedly has some calendar functions available via plugin. I tried enabling that as a brief test, and the user interface that it presented (Chromium browser) was pretty pitiful, to say the least. Maybe I did something wrong, but it was not a usable implementation based on my initial impressions. Note: I am running this NextCloud server on a Raspberry Pi3, and that could have something to do with it. I am in the initial thought-process of re-implementing NextCloud on a better server (using Docker, hopefully).
  • Server and associated infrastructure (web server, PHP, database, etc.) to run on Linux, preferably running in a set of interacting Docker containers
  • Something that uses CalDAV/CardDAV probably, since that is widely supported by clients
  • I would like something that handles "task lists" as well - is that part of the CalDAV spec?
  • Client software choices to access the server available for Linux, Windows, Android, and iOS
  • Free server implementation
  • Clients don't have to be free, but nice if they were

Thanks in advance for any pointers!

p.s. - This is for personal use for my family only. Not a large-scale corporate thing. No need to worry about things like scalability, although I definitely want security.

haertig 04-06-2018 11:05 AM

p.p.s. - I just tried the online demo of Nextcloud, and the problems I had on my Raspbery Pi implementation are not present in the demo. So, maybe Nextcould will be a fine implementation of a calendar server. I will attempt to re-implement Nextcloud on a better host platform than my Raspberry Pi and see if that works better.

Still, if anyone has other suggestions of software to try, I'm interested in hearing about alternatives.

bgstack15 04-08-2018 09:30 PM

Here are a few suggestions. This is from my "Long term cool project ideas.txt" list:

Code:

6. set up some kind of groupware, added 2017-12
 webmail, calendar, and contact management
 in order: Citadel, Onlyoffice, Zimbra, SOGo,

I want to accomplish the exact same goal as you. Right now I have personal project outside of GNU/Linux and computing in general, but someday I hope to also be independent of GOOG. Good luck with your quest, and please keep this thread updated!

Habitual 04-10-2018 08:55 AM

We did this at our Company, but we used Owncloud as zimbra wouldn't play nice.

Forgot details since it works that well!

haertig 04-10-2018 05:03 PM

I am currently pursuing using NextCloud for this calDAV server. At the same time, I am on a quest to learn Docker. So this Nextcloud server for my calendar (and other cool stuff that NextCloud provides) will be my first project using Docker. Looks pretty simple actually. There are official Docker images for nginx, mariadb, and nextcloud. The nextcloud image includes PHP. I will be modifying the nginx image and adding SSL via LetsEncrypt to it. So it appears that I have everything I need available as Docker images (with a few of my own minor modifications needed). Note that there is also an all-in-one Docker image for nextcloud, that includes a web server (Apache), database, etc. So I could do it that way if I wanted it to be super-easy, but I prefer the separation of these services, hence I will be going the route of separate Docker containers for each of the major components (nginx/mariadb/nextcloud).

This should be much easier than my original NextCloud implementation on the Raspberry Pi. That took manual compiling, significant configuration, manual hunting down of dependencies, tuning for best performance on the low-resource Pi, etc. But I learned a lot about the NextCloud implementation having done it that way. Compared to that, this new Docker implementation should be a piece of cake (SHOULD be!) Not to mention, the 16gb, 8 CPU core server I am putting it on should outperform the Pi significantly!

Chuck56 04-10-2018 10:07 PM

Take a look at Baikal ( http://sabre.io/baikal/ ) for server based CardDAV/CalDAV functionality. Requires PHP >5.5, MySQL or SQLite, Apache or Nginx.

Lots of clients are available for nearly all platforms. Like DAVdroid for Android or Kontact & KOrganizer for a KDE desktop.

descendant_command 04-11-2018 02:12 AM

DaviCal is another option for a dedicated CalDAV calendar server, but a big +1 for NextCloud.
We’re still on OwnCloud but planning to migrate to Nextcloud on the next upgrade.

Our experience has been very good, with droids, iThings and Thunderbird sharing calendar, tasks and contacts, as well as files.

bgstack15 04-12-2018 01:55 PM

Quote:

Originally Posted by haertig (Post 5841605)
So I could do it that way if I wanted it to be super-easy, but I prefer the separation of these services, hence I will be going the route of separate Docker containers for each of the major components (nginx/mariadb/nextcloud).

What are you using to control the different containers all together, if any? I have some ideas about that but I don't want to tilt your answer towards any particular strategy just yet.

haertig 04-12-2018 11:37 PM

Quote:

Originally Posted by bgstack15 (Post 5842460)
What are you using to control the different containers all together, if any? I have some ideas about that but I don't want to tilt your answer towards any particular strategy just yet.

I am reading up and learning "Docker Compose". I think that is how you are supposed to tie various containers together into a single application ("Docker Swarm" if those containers are running on different servers). But I don't really HAVE a strategy yet. I'm in learning mode, and my strategy will develop once I actually learn something! I'm open to any tips, suggestions, pointers, or experiences. I like the idea of have NGINX in it's own separate container, because I will be using NGINX as a reverse proxy for other services completely separate from NextCloud. NGINX will be doing all the heavy lifting converting HTTP services to secure HTTPS ones using LetsEncrypt server certs, and also verifying client certs that I currently use for incoming authentication.

Sefyir 04-14-2018 07:30 PM

Radicale is a good minimal calendar server
http://radicale.org/

It's file-based, so there's no sql server.
It's pretty simple to setup and run for small use cases.

Quote:

I do currently run my own NextCloud server. That purportedly has some calendar functions available via plugin. I tried enabling that as a brief test, and the user interface that it presented (Chromium browser) was pretty pitiful, to say the least. Maybe I did something wrong, but it was not a usable implementation based on my initial impressions. Note: I am running this NextCloud server on a Raspberry Pi3, and that could have something to do with it. I am in the initial thought-process of re-implementing NextCloud on a better server (using Docker, hopefully).
What version? What did this interface look like?
I'm using nextcloud 13 and I found the calendar interface to be pretty decent, but perhaps you have specific expectations / requirements

Quote:

Something that uses CalDAV/CardDAV probably, since that is widely supported by clients
Nextcloud does this, this is pretty much all radicale does.

Quote:

Client software choices to access the server available for Linux, Windows, Android, and iOS
Linux has a few (Thunderbird with Lightning for example), I'm sure Windows have something with support for caldav.
As for Android, davdroid is the go to. It is not free on the playstore (though it's worth it). However, you can obtain it with F-Droid for free if you want to pursue that route. This creates calendars that any caldav enabled app can use (Like Simple Calendar)
Not sure about ios.

Quote:

I would like something that handles "task lists" as well - is that part of the CalDAV spec?
Yes, when creating a calendar, it will ask you if you want to create a calendar, or a combination of calendar + task list (amongst other things too).

An example task list for android is Open Tasks and Thunderbird + Lightning for Linux. Don't know about Windows or ios.

haertig 04-14-2018 09:34 PM

Quote:

Originally Posted by Sefyir (Post 5843241)
What version? What did this interface look like?
I'm using nextcloud 13 and I found the calendar interface to be pretty decent, but perhaps you have specific expectations / requirements

My mistake. The calendar interface is not bad. It is the Task List interface that was all messed up. However, this was only messed up on my personal implementation of NextCloud 12 on a Raspberry Pi. By "messed up" I mean "rendered horribly". When I accessed the NextCloud 13 demo on the web (the Task List part), the interface rendered OK - using the same browser and client computer.

The only thing I don't like about the calendar interface is that you cannot tell it your week starts on Monday. It always uses Sunday as the first day of the week. I did some web searching on that, and the discussions I found indicated that the developers had no intention of letting you set the 1st day of the week. There are plans to let you set locales, and the week start day will be dependent on locale. Ditto for a 12 hour or 24 hour clock setting. United States, where I am, is set to Sunday as week start and 12 hour time. What I want, is Monday for start of week and 24 hour time. So when they finally get this new locale feature developed, it looks like I'll need to search out some country that uses Monday/24 and artificially set that as my locale. Maybe Botswana or Siberia will do the trick. But they also have to speak English in that locale, so I'll be able to read what my calendar says. Sounds like a very poor design decision by the NextCloud calendar folks. Why not just let you pick a language, a clock format and a start day of week - all manually, not tied into some locale setting? Fine to default to a locale's typical settings at startup, but at least let users over ride those defaults. Not everybody likes their locales default settings. But apparently NextCloud calendar developers have said a firm "no" to manual settings. I have no idea why, coding for user preferences like that is pretty standard everywhere, and not at all complex to program.

descendant_command 04-14-2018 11:45 PM

Probably depends on the existing rendering code.
You can always use an external client and see it any way you want.

ondoho 04-15-2018 01:10 AM

Quote:

Originally Posted by Sefyir (Post 5843241)
Radicale is a good minimal calendar server
http://radicale.org/

It's file-based, so there's no sql server.
It's pretty simple to setup and run for small use cases.

this is true, but then i tried to use the calendar thus created with davdroid and ran into trouble: while the calendar provided by my email account worked neatly, the one from my radicale install threw weird errors.
the web interface seemed to work ok though.
i read somewhere (wish i could remember where) that radicale "deliberately supports only a small subset of the caldav/carddav specs".

this is not a final verdict, it is very well possible that i messed up myself, but i will try something else next, and if that works better, it's good enough for me.

haertig 04-15-2018 09:57 AM

Quote:

Originally Posted by descendant_command (Post 5843280)
Probably depends on the existing rendering code.
You can always use an external client and see it any way you want.

I was using an external client - Chromium web browser. I tried Firefox, and it was messed up too. Of course, both of those external clients were accessing the web interface of NextCloud. Things may have been different if they were using CalDAV for access.

ondoho 04-08-2019 03:18 PM

I have now been succesful with this:
https://dt.iki.fi/caldav-carddav-server


All times are GMT -5. The time now is 11:47 PM.