A few questions about the functions of the server
The server does not has any user interface like Google Calendar web version, right? But it can be accessed through an existing client like iCal or ThunderBird?By default the cal data are stored using files, but what if I want to save all of them using an external DB, seems like you support PostgreSQL by default? But what if I want to use mysql? Can the server support mysql?If I use an external DB to store the calendar data, what about the attachment of an event? What is the recommended way to sync them in multiple server instances?If I use an external DB, the server will be stateless, right? So I can deploy as many instances of it as I want to?Thanks in advance?
On Dec 1, 2016, at 10:46 PM, 陈锋 <chenfeng@fintechina.com.cn> wrote:
The server does not has any user interface like Google Calendar web version, right? But it can be accessed through an existing client like iCal or ThunderBird? Correct By default the cal data are stored using files, That was true in very old versions, but for quite a while CalendarServer has only supported a (postgres or oracle) database backend. but what if I want to save all of them using an external DB, seems like you support PostgreSQL by default? But what if I want to use mysql? Can the server support mysql? We don't support mysql, however we do have a pretty fancy database abstraction layer in the twisted-extensions <https://github.com/apple/ccs-twistedextensions> (aka 'twext') project that sits atop the two supported backends (postgres and oracle), so adding a third is probably within the realm of possibility, although we have no plans to do so ourselves. Postgres is good. If I use an external DB to store the calendar data, what about the attachment of an event? Attachments are not stored in the database. Instead they are stored in local files on the CalDAV server. For a multi-server deployment, use something like NFS to host the attachments directory for all servers to share. What is the recommended way to sync them in multiple server instances? Any scheme where you have to explicitly 'sync' is not going to be good enough, because that implies the possibility of being out of sync, which opens the window to race conditions, etc. The attachments store needs to be a single source of truth. NFS works well for this. If I use an external DB, the server will be stateless, right? So I can deploy as many instances of it as I want to? Yes. Of course there is runtime state, but the transactional nature of the database allows the data to stay consistent even if e.g. a CalDAV server disappears.
See also: https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/MultiServe... Hope this helps, -dre
Hi, Andre, Thanks so much for your answer. For my next step, What's the recommendation way to install the latest 9.0 release? My server system is Ubuntu / 14.04.1 LTS amd64.I fllow the instructions here and got severl C compilation errors when I run bin/develop.https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/Guide.rstS... as:digestmd5.c:1019:7: error: 'DES_DECRYPT' undeclared (first use in this function) DES_DECRYPT);digestmd5.c:1070:21: error: 'DES_ENCRYPT' undeclared (first use in this function) DES_ENCRYPT);digestmd5.c:1094:20: error: 'des_cblock' undeclared (first use in this function)... And I can see that all the parts of the Guide after the requirements is all gray, so how should I proceed the install, any suggestions? ------------------------------------------------------------------发件人:Andre LaBranche <dre@apple.com>发送时间:2016年12月3日(星期六) 03:44收件人:陈锋 <chenfeng@fintechina.com.cn>抄 送:calendarserver-users <calendarserver-users@lists.macosforge.org>主 题:Re: [CalendarServer-users] A few questions about the functions of the server On Dec 1, 2016, at 10:46 PM, 陈锋 <chenfeng@fintechina.com.cn> wrote: The server does not has any user interface like Google Calendar web version, right? But it can be accessed through an existing client like iCal or ThunderBird?CorrectBy default the cal data are stored using files,That was true in very old versions, but for quite a while CalendarServer has only supported a (postgres or oracle) database backend.but what if I want to save all of them using an external DB, seems like you support PostgreSQL by default? But what if I want to use mysql? Can the server support mysql?We don't support mysql, however we do have a pretty fancy database abstraction layer in the twisted-extensions (aka 'twext') project that sits atop the two supported backends (postgres and oracle), so adding a third is probably within the realm of possibility, although we have no plans to do so ourselves. Postgres is good.If I use an external DB to store the calendar data, what about the attachment of an event?Attachments are not stored in the database. Instead they are stored in local files on the CalDAV server. For a multi-server deployment, use something like NFS to host the attachments directory for all servers to share.What is the recommended way to sync them in multiple server instances?Any scheme where you have to explicitly 'sync' is not going to be good enough, because that implies the possibility of being out of sync, which opens the window to race conditions, etc. The attachments store needs to be a single source of truth. NFS works well for this.If I use an external DB, the server will be stateless, right? So I can deploy as many instances of it as I want to?Yes. Of course there is runtime state, but the transactional nature of the database allows the data to stay consistent even if e.g. a CalDAV server disappears. See also: https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/MultiServe... Hope this helps,-dre
Hi,
On Dec 2, 2016, at 7:07 PM, 陈锋 <chenfeng@fintechina.com.cn> wrote:
My server system is Ubuntu / 14.04.1 LTS amd64. I fllow the instructions here and got severl C compilation errors when I run bin/develop. https://github.com/apple/ccs-calendarserver/blob/master/doc/Admin/Guide.rst Such as: digestmd5.c:1019:7: error: 'DES_DECRYPT' undeclared (first use in this function) DES_DECRYPT); digestmd5.c:1070:21: error: 'DES_ENCRYPT' undeclared (first use in this function) DES_ENCRYPT); digestmd5.c:1094:20: error: 'des_cblock' undeclared (first use in this function) ...
This may be caused by old library versions on your system. Make sure you're running the most recent version of 14.04, which is 14.04.5 as seen here: https://wiki.ubuntu.com/Releases - this might include updated system packages that resolve the problem. If not we can dig deeper. CalendarServer has a fairly modern security posture with respect to rejecting known-insecure encryption mechanisms, and DES is definitely in that category (https://en.m.wikipedia.org/wiki/Data_Encryption_Standard). -dre
On Fri, 2 Dec 2016 14:46:23 +0800, 陈锋 said:
The server does not has any user interface like Google Calendar web version, right?
I guess it's not part of the open source project, but FYI if you use CalendarServer via macOS Server.app, you get a pretty nice web interface. Cheers, -- ____________________________________________________________ Sean McBride, B. Eng sean@rogue-research.com Rogue Research www.rogue-research.com Mac Software Developer Montréal, Québec, Canada
participants (3)
-
Andre LaBranche
-
Sean McBride
-
陈锋