This article is work in progress and will be updated along the way. Last update: July 12th 2014 – calendar & contacts.
For some time (before dropdropbox) I thought about replacing dropbox as my primary cloud storage. Instead of choosing another provider like Google Drive or Wuala I decided to try owncloud.
Owncloud is a (free and open source) server based software, which offers encrypted file storage, a calendar, an address book, task management and some other stuff. Owncloud can be installed on a usual web hosting service, as long as PHP is available. Some advantages:
So this post is about my experience while migrating from Dropbox/Google Calendar/Contacts to Owncloud and some best practices I found. (I won’t repeat the owncloud manual here, so the basic stuff won’t be explained.)
This is generally quite straightforward, upload the files to the webserver, set the correct permissions, open browser and configure your user etc.
Important: Use MySQL as storage engine if possible. Do not use SQLite. Just don’t. In order to do this, you have to setup the MySQL database before installing owncloud. (The manual says “Because SQLite handles multiple users very badly SQLite is only recommended for single user ownCloud installations”. When I used SQLite Owncloud was extremely slow, even I was the only user. I suppose syncing data from multiple clients has the same impact as having multiple users..)
Important: If your provider offers an SSL-proxy (in case you don’t have an SSL certificate) set this up before installing. There are some articles online about this topic, I found that I had to add the following entries in /<your-owncloud-directory>/config/config.php:
Hint: File encryption isn’t enabled by default. It is provided as App, which you need to enable as in the backend (whatever the reason might be for this..). I didn’t have a deeper look at security and so nothing confidential is online, currently.
Generally the web interface
is well done has some issues: It’s not responsible and simply unusable on a mobile (at least when using Chrome/Android). The interface works in a way but in looks broken in many places (for example the contact management is a real mess, editing appointments sometimes has problems with tabs..).
The settings work as expected, with some minor design flaws: I.E. the preferences are mostly saved via Ajax. Some with a visual feedback, some without, some preferences reload the page, some open another page… Update is also strange: The link “Update center” looks totally not like the other buttons, it opens a new page, click on the “Update”-Tab to see this screen (no update available? an error? whatever..):
Using external storage (you can include dropbox or google drive or some other remote cloud space) is also a bit strange: You can set up storage providers in the administration interface, then you enable it for users and do the same in your user prefs? A bit counter-intuitive. Apart from these minor annoyances: The interface is usable and fast.
To synchronize your files between different computers, there’s the free owncloud-software ( owncloud.org/sync-clients/ ) for Mac, Windows and Linux. I only use the Mac-version – it works similar to the Dropbox-client, sitting at the top right menubar. You can set the folders to be synced as well as the rate for down-/upload and view the last modifications. The software on the Mac is not as responsive and stable as its Dropbox counterpart: Sometimes it crashed and sometimes it took several minutes until the thing decided to notify my modifications, but that’s no big deal.
Hint: Files with special characters in their name won’t be synced. Due to the platforms on which owncloud works, the filenames must be valid on all these platforms. So that means: No files with / ? & " ' in their name. Symbolic links are also not synced, neither as link nor are the contents synced. For some setups this leads to problems, but since you can sync multiple folders you can still work around this issue.
Instead of syncing the files you can also access the files in your owncloud via WebDAV. This works quite okay when using a client like Panic’s Transmit on the Mac. If you use OS X Finder it’s simply a pain, but that seems to be the case with all WebDAV implementations I’ve encountered. Therefore: Either use a tool like Transmit or sync the files via the dedicated client software.
A calendar is integrated which has the usual features like day/week/month view, multiple calendars, repeating appointments, sharing appointments etc. The webinterface, well, works in a way.
It’s not very pretty It does work somehow and is quite ugly, but you at least can drag&drop appointments, change the duration by dragging the lower bar. Very nice is the integration of contact birthdays – this works flawlessly (it shows you even the year of birth, the upcoming age would be somewhat more helpful but okay..)
Much more important is (at least for me) the possibility to use the calendar with other software – in this case Mac calendar and Android. You can download the calendars as ics-file, get a read-only link and a CalDav-Link (read/write).
This works great: Just open OSX Calendar, add a new account, type “CalDav”, copy the link for OSX from the owncloud calendar settings, enter your credentials and you’re done. Same goes for reminders which syncs to the OSX Reminders app. The synchronization works stable with reminders, repeating appointments, whole-day appointments and appointment details.
Here things get a bit more complicated – but once you’ve set up everything the synchronization works also great. The thing is, Android can’t use CalDav-accounts natively. An easy workaround would be to import the owncloud-calendar into the Google calendar and let Android sync with Google, which is of course not a problem. But that’s usually not what you want. So you have to install an app which works as a “synchronization provider” for Android, just like i.e. Facebook and Dropbox do. I tried some and my verdict is:
Use “CalDav Sync” from Marten Gajda, period – play store link.
The app costs € 2.59 – and the developer also maintains an app for syncing contact data (see below). For the latter one you can download a trial version, for this one IMHO not. As soon as version 1.0 is reached, the app is going open source, which is not only a good idea but also makes sure the app can be maintained even if the developer doesn’t.
After installing you can setup new calendar accounts, enter the URL, credentials, choose which calendars to sync (1-way or 2-way), select sync intervals and after some minutes you can see and use the owncloud-calendars in the mobile calendar app of your choice – like Google calendar, Samsungs own calendar thing or any of the 48598 other calendar solutions for Android (as long as they adhere to the Android standard). I’d recommend using one-way (from owncloud to mobile) at first to try out if everything works.
Contact managment inside owncloud is also nothing for web design awards, but it works – if you have no problem with a broken layout. See the following screenshots:
The features on the other hand are quite sophisticated: gravatar support, contact groups, multiple address books, all necessary contact fields. And: Importing contact data from OSX Address book (aka OSX Contacts) works great, including contact photos, multiple email addresses, birthdays etc.
This is easy: Open OSX Contacts, add a new account (type “other…”) and choose CardDAV on the next screen, enter the credentials and – done. If only everything worked that way…
Similar to CalDAV Android does not include CardDAV natively ;( But no problem with this app from Marten Gajda: CardDAV Sync, free version available – play store link.
The app works also according to Android standards, so you find your synced contacts in the contact management app of your choice. Setup also quite easy: Add a new account, enter the synchronization URL from owncloud (click the gear icon in the bottom left on the contact page), credentials and setup the synchronization interval + mechanism (one-way/two-way). I’d recommend using one-way (from owncloud to mobile) at first to try out if everything works.
(more to follow soon: photos, 1password, android)
An update for CwCrop – size calculation was a bit off in certain cases, thanks to Harm Hermsen for fixing this.
A new beta release: Now supports JSHint 2.3 with custom preferences. … Continue reading »
New release: Mostly bugfixes and some code rewrite in the background. … Continue reading »
I’m moving my website to a new server (to have php 5.4) – therefore the website will be down for a few hours.
Everything should be up and running in a few hours and I’ll use this (semi-interesting) blog post to mention how content I’m with my provider:
Today I asked if it was possible to move my account to another server with php5.3/php5.4-support because the current server offers php5.3, but only via CGI. This usually is not a big thing, but there are certain drawbacks: For example it’s not possible to use “flush()/ob_flush()”. (Well you can use it, but the page is being sent in one piece anyway). Of course php via CGI was the last thing I thought of .. Before that I tried lots of different esoteric stack overflow hints (“Always send a Carriage Return!”, “Send at least 200 characters before each flush()” and so on..) until I finally realized it might have something to do with the server.
Well, long story short, a few minutes (sic!) later I received an e-mail that this is no problem and my webspace can be moved to another server if desired.
By the way: It seems the Akismet Anti-Spam plugin has some major problems the last weeks – because 95% of all posts I receive for review are spam. Not a very big deal, because I’m talking about 10 to 30 posts per week and according to the stats last month about 19.000 posts were directly marked as spam… – but if you sent a useful comment and it’s not released yet, well that might be the problem, sorry..
This isn’t meant to be stupid advertising or to promote the partner-link below (you’re of course welcome to use it, but I think it’s only interesting for German users) – it’s rather a recommendation.
So, honestly recommended as provider: all-inkl.com.