owncloud

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
owncloud [27.03.2016 17:04] Pascal Suterowncloud [16.07.2021 00:30] (current) – [synchronize external caldav and carddav sources] Pascal Suter
Line 119: Line 119:
  
 ===== synchronize external caldav and carddav sources ===== ===== synchronize external caldav and carddav sources =====
 +**UPDATE** I have moved away from python virtualenv as it broke vdirsyncer on almost every os update. I now run vdirsyncer in a docker container based on [[https://github.com/kaergel/docker-vdirsyncer]]. Basically copy the tempalte for the ''docker-compose.yml'' file and adjust to your needs. the ''config'' volume is a single file, so if you have multiple calendars to sync, put them all in one file and then pass this file as ''/config'' volume. I also added a directory which is mounted as volume to ''/status'' and used ''/status'' in the ''general'' section of my config file for the status directory. this seems to work fine. 
 +
 **caution** this has only been done one-way, so that an external calender which is only changed externally gets regularly synced to owncloud. i haven't tired this in a two way mode.  **caution** this has only been done one-way, so that an external calender which is only changed externally gets regularly synced to owncloud. i haven't tired this in a two way mode. 
  
 prior to owncloud9 there was a sync script which did exactly that. unfortunately it no longer works with oc9 and the developer has posted that he won't fix it, so we need a new solution.  prior to owncloud9 there was a sync script which did exactly that. unfortunately it no longer works with oc9 and the developer has posted that he won't fix it, so we need a new solution. 
  
-currently i am trying to use [[https://vdirsyncer.readthedocs.org|vdirsyncer]]. to install in ubuntu 14.04 i did this: +currently i am using [[https://vdirsyncer.readthedocs.org|vdirsyncer]]. to install in ubuntu 16.04 i did this: 
   apt-get install libxml2 libxml2-dev libxslt libxslt-dev zlib1g python python-virtualenv python-pip   apt-get install libxml2 libxml2-dev libxslt libxslt-dev zlib1g python python-virtualenv python-pip
-  virtualenv /opt/owncloud/vdirsyncer +  pip install pipsi 
-  export CPLUS_INCLUDE_PATH=/usr/include/libxslt/:/usr/include/libxml2+  pipsi --home /opt/owncloud/ install --python python3 vdirsyncer 
-  /opt/owncloud/vdirsyncer/bin/pip install vdirsyncer+  mkdir /opt/owncloud/vdirsyncer/status 
 +  chmod 777 /opt/owncloud/vdirsyncer/status 
 +now it's time to configure your vdirsyncer.. in my case i wanted to sync a html read-only source (ical format) to owncloud. here is my config file:  
 +<code> 
 +[pair photokiste] 
 +"photokiste_crm" 
 +b = "photokiste_owncloud" 
 +collections = null 
 +conflict_resolution = "a wins" 
 + 
 +[storage photokiste_crm] 
 +type = "http" 
 +url = "https://www.source-server.com/ical.ics" 
 + 
 +[storage photokiste_owncloud] 
 +type = "caldav" 
 +url = "https://my.owncloud.server/remote.php/dav/calendars/username/calenarname" 
 +username = "myuser" 
 +password = "mysecret" 
 +</code> 
 +the owncloud calendar name can be viewed by hovering over the calendar. it will appear as mouse pointer tooltip.  
 + 
 +one thing on the ical format.. i used a library called ''PHP iCalWriter'' which i generated the ical source file with. as it turns out, PHP iCalWriter writes an different DTSTART and DTEND field for whole-day-events than what owncloud accepts. i have no idea who's write and who's wrong, but since i PHP iCalWriter is open source and it is already quite an old version i am using i decided to simply modify it. make sure, that your ical file contians a DTSTART and DTEND that look like this for whole-day-events (that is, events where the start and end date does not contain a time) 
 +  DTSTART;VALUE=DATE:20160903 
 +and a line like this for date + time start and end dates:  
 +  DTSTART:19701025T030000 
 +(PHP iCalWriter never added the ;VALUE=DATE: portion).  
 +this might be an onwcloud problem, as owncloud exports the "wrongly" specified events but it does not show them on the web-interface.. so maybe the web ui is just messing this up..  
 + 
 +once the config file is written, vdirsyncer needs to be run to initialize the account. as the user who will run vdirsyncer later on run this command:  
 +  VDIRSYNCER_CONFIG=/opt/owncloud/photokiste.conf /opt/owncloud/vdirsyncer/bin/vdirsyncer discover photokiste 
 +now vdirsyncer can be run through cron or manually like this:  
 +  VDIRSYNCER_CONFIG=/opt/owncloud/photokiste.conf /opt/owncloud/vdirsyncer/bin/vdirsyncer sync 
 + 
 +that's it :) .. theoretically vdirsyncer should also support two way sync, but i haven't tried that..  however they seem confident in their solution so it might be worth a try even for two-way syncing :) 
 +==== Update Vdirsyncer ==== 
 +you can run updates using pipsi as well:  
 +  pipsi --home /opt/owncloud/ upgrade 
 +==== fix vdirsyncer after OS upgrade ==== 
 +you might just need to re-install vdirsyncer after a os upgrade because the python version behind the virtualenv changed and is no longer compatible with the environment. in that case just rename the ''/opt/owncloud/vdirsyncer'' directory and start from scratch as listed above. Make sure you keep your configs! 
  
  • owncloud.1459091096.txt.gz
  • Last modified: 27.03.2016 17:04
  • by Pascal Suter