Now that I finally had my little server, I wanted to sync all my stuff from a variety of electronic devices: ie the working files on different computers, and also the calendar data and addresses should finally be in sync on all devices.
After a quick search I am first came to OwnCloud. A truly worry-free solution and also really easy to install.
- a convenient Web interface
- a calendar including CalDAV interface
- a contact list including CardDAV interface
- WebDAV interface
- clients to synchronize for almost any operating system
Unfortunately i had problems with my OwnCloud-installation. There were always problems with the synchronization of calendar data and files.
So it came regularly to an error message of the CalDAV SyncAdapter during synchronization of calendar data from my phone, synchronizing with Thunderbird/Lightning led to huge traffic and high CPU load on the server because the synchronization did not work.
The synchronization of files with the sync client was very slow - a folder of 2,4 GB needed for the initial synchronization with the server about 4 hours. That alone was not really a problem, but for no apparent reason some files were missing on the server after the synchronization.
In addition, the performance of Owncloud was a disaster on my BeagleBone.
So i had a look for an alternative and then finally found: SeaFile as a cloud solution and Baikal for synchronization of calendar and contact data.
Seafile is a cloud solution that was implemented in C and Python. Seafile has its own little web server for handling his web interface. The port for the web server is freely selectable.
Furthermore, there are sync clients for all major operating systems and mobile devices.
Seafile provides the ability to encrypt their data in the cloud. The data on the client are encrypted, transfered encrypted and also stored encrypted in the cloud. Conversely, the data will be transfered encrypted to the client and then will be decrypted on the client. So the password is only on the client. Nice thing.
Furthermore Seafile provides version control, which is useful when multiple clients work with the same files.
As a database backend you can choose between SQLite or MySQL. SQLite is used by default. I've tried both and found no relevant differences.
In addition Seafile has, like OwnCloud too, a WebDAV interface, so that you can access your files from mobile devices without having to synchronize them completely. With a suitable file manager the files in the cloud can be accessed like in a network drive.
Up to now only unencrypted files can be accessed via the WebDAV interface on the server. According to a developer that would be feasible, that you can also access encrypted files. However, there is yet no information whether that should be implemented.
So you should take that into account when creating your libraries. If you want to access, for example, your music collection on your Seafile server with a tablet-pc, you must not encrypt it.
That Seafile has largely been implemented in C, speaks in advance for a good performance, which has also been confirmed during the test. The same folder with 2.4GB was synchronized in less than 20 minutes ... over W-Lan.
The installation of the Seafile server requires a bit of manual work, but is quite simple and is described very detailed in the Wiki. There is even a special version of Seafile for the Raspberry Pi - which of course also works on the BeagleBone Black. Since Python it is already installed by default on both in the Debian-version, only a few packages need to be installed additionally.
Instructions on how to setup Seafile with NginX and MySQL can be found in this article: Seafile with NginX and MySQL
Baikal is is a small, in the PHP implemented server, which is capable of the CalDAV and CardDAV protocol. CalDAV is a protocol for synchronizing calendar data, with the CardDAV protocol address and contact information can be synchronized.
The data can either be stored in a SQLite or MySQL database. With the simple and clear web interface users, calendars, and address books can be created and administrated easily.
How to install Baikal with the web server nginx, I've described in this article .