The tools offered by so-called "cloud services" are useful but most often there is a (natural) tendency for these services to make you use their tools (youtube for google, iphone for apple). Why do we need to be locked to these services when open-source alternatives abound?
There are different components I wish to cover here:
- cloud service: http://owncloud.org is a self-hosted service offering a performant file synchronization and more (see below):
- owncloud comes with a client for file synchronization which works actually fine. to install on Mac os x you may use home brew casks and just type `` brew cask install owncloud `` and you just need to enter your credentials to your server
- however this tool scales pretty badly with a lot of files. It works fine for less than 1k files - and very good for a couple of files like a calendar, todo.txt (see below), a picture roll, etc... However it chucks with larger number like a whole repository of data files (> 10k files). Another solution is then to sync files using the decentralized system offered by syncthing - works like a charm on macs (type
brew install syncthingand basically you are set) androids and more (no iOS so far up to my knowledge)
- e-mail: instead of using a webmail, use an IMAP server such as dovecot (like on a NAS). As an e-mail client, I chose
- thunderbird on desktop, (note that by default, thunderbird uses "search bing for...". to avoid that follow these simple instructions: https://duck.co/help/desktop/thunderbird --- showing that thunderbird is not quite streamlined...) - useful info on both sides: https://support.mozilla.org/en-US/kb/thunderbird-and-gmail - https://support.google.com/mail/answer/78892?hl=en
- k9-mail on android
- addressbook : the addressbook is useful in the e-mail client only (system wide integration is unnecessary)
- as owncloud provides with an addressbook and a carddav link, it is possible to use it as a server,
- the carddav service in MacOsX is flawed and won't work with this implementation. As we just need it in thunderbird, we may use the sogo connector (see http://www.sogo.nu/downloads/frontends.html ) to add an option in thenuderbird's address book to connect to the carddav link,
- on android, integration works with CardDAV-Sync free beta which is available @ https://play.google.com/store/apps/details?id=org.dmfs.carddav.sync (edit: see also DavDroid as explained in this post)
- one difficulty (illustrating the lock-in syndrome of private providers) is that import and export tools are often flawed (again). A working solution was to:
- open thunderbird's adress book and allow macosx address book integration,
- export that entries to a VCF file,
- use the following online tool (code on https://github.com/thomascube/vcfconvert ) to convert it to a LDIF format,
- import that format to thunderbird,
- copy that entries to the owncloud addressbook,
- restart thunderbird and synchronize.
- calendar: again, owncloud provides a nice solution using a caldav link:
- so we use owncloud as the server,
- thunderbird as a calendar as an add-on, so install "lightning",
- lightning accepts to connect to a caldav calendar with no issue,
- to export gmail's calendar, you may need to export it in ICS format from the calendar.app application from macosx.
- however, macosx' native calendar.app fails to connect to the owncloud server - luckily owncloud is smart (yet it's not completly intuitive...): make sure to export the ICS file within your owncloud file folder, sync with the desktop client, get on the web interface for owncloud, locate the file, select it... a dialog opens proposing to import the file as events in a calendar.
- on android, you can similarly use Caldav Sync Free Beta https://play.google.com/store/apps/details?id=org.gege.caldavsyncadapter and do the same process as above. Integrates perfectly with the agenda client from google (they are not so evil after all...). Edit: see also DavDroid as explained in this post
- tasks: everything revolves under the http://todotxt.com/ specifications -- all in one, simple todo.txt file
- the file sits in the owncloud repository, syncs with desktop and android using the owncloud app, (on android, be sure to not save it on the external sdcard as it would make it read-only)
- on mac, I use vim or alternatively todotxtmac available using
brew cask install todotxt- another nice tool is the CLI available using
brew install todo-txt
- on android, I use the folowing solution: https://blog.portknox.net/2014/11/how-to-manage-todo-txt-with-owncloud/ (that is by using https://f-droid.org/repository/browse/?fdid=nl.mpcjanssen.simpletask )
- applications: 1. on android: you need a gmail account for any android device. for that, create a dummy account accross all devices. 2. on macosx, I keep my iCloud account
- it's then clean-up time to remove all synchronization items in macosx and android with icloud, gmail and such.
As a conclusion, it's quite easy to set up a self-hosted cloud solution for such simple setup, and I am quite surprised macosx is so obstrusive (for the icloud, carddav and caldav accounts).