For Christmas of 2013 I received a Raspberry Pi. I enjoyed setting up the computer, and even configured a lite MineCraft server for my son. Aside from that, however, the only other use my Pi got was as an AirPrint server. I knew it could be much more, and lined up some projects in my head, but simply couldn’t find the time to sit down and unleash this wonderful little device.
This past fall things began to change. First, after many failed attempts, I finally got OpenVPN working. Next, I played around with the fantastic BitTorrent sync, turning my Pi into the “always on” relay between the Central’s lyrics laptop and the computer our Lyrics editor uses at home. It’s worked fairly well. This Christmas Break I even got moving on a project which I’ve had my eyes on for ages, ownCloud. This is, at it’s most basic level, a DropBox clone which can be set up on personally owned hardware. It puts a user’s data wherever they are, no third-party providers needed.
First Thoughts – The Install
After searching through Google for a bit I came across this howto for setting up OwnCloud on a Raspberry Pi. I found it quite straight-forward, and it even worked the first time I tried it! For me, the process was actually rather easy. Of course, I’m not a very good base-point for ease of install. While I am by no means a master of all things Linux I am a Geek, and understood all the commands I was being told to run. I even went back later and changed the ports my web-server uses for it’s connections and re-issued my ssl certificate.
If you don’t understand most of the above paragraph, you have come across the biggest hurdle in ownCloud adoption, it’s bent decidedly towards the geeky end of the spectrum. If you aren’t comfortable on the command line, creating databases1, managing users, or editing configuration files setting up ownCloud can be a time-consuming and frustrating experience. This is definitely a geek’s playground.
On one hand, this is probably a good thing. After all, ownCloud is meant to project our data out on to the web. If those who set up the server don’t have a least a basic understanding of how it works under the hood it could create a great many challenges down the line – not the least of which being a loss of private data through theft.
On the other hand, the huge learning curve for novice users makes me a bit sad. ownCloud is a fantastic tool. It’s certainly worth the time it takes to learn and understand the steps it takes to set it up.
As stated earlier, at the most basic level ownCloud is essentially a DropBox clone. Desktop OS’s can install a sync client which creates a special automatically-synced folder tied to a configured server. It also has both iOS and Android apps, increasing the usefulness of the service2. Users can quite happily stay at this level of interaction and enjoy having the only limit to their cloud storage being the size of the hard drive they themselves connected to the server.
ownCloud, however, can do much more. These special features come in the form of ownCloud applications which can be accessed through the ownCloud web-interface. While more applications can be set up on an ownCloud server, only several applications are enabled by default – Files, Documents, Pictures, Calendar, Contacts, and Activity.
Activity lists current activity for your user. This is useful for keeping track of file uploads, shared links, and errors.
Contacts is actually a contacts server which can be synced with other devices using the CardDAV standard. This is the same standard used, for example, by Google for their contact sync.
Similar to Contacts, the Calendar application is actually a full calendering server which can be synced both to other devices and desktop applications through CalDAV. Events can be created, shared, edited, and drag-n-dropped across a user’s multiple calendars. Invitations can been to sent to anyone, and full calendars can be shared with any users and groups set up on the same server. I have not used calDAV sync yet, but I am quite impressed with the web-interface – it’s not in the realm Google Calendar, but it’s quite good3.
Photos scans for photographs throughout a user’s data, and lists any folders in which an image is found. The web-interface allows users to drill down through folder levels to get to an image list – and upon command it will even display a simple slide-show of images found in a particular folder. There is no built-in editing, and metadata isn’t shown in the display, but it’s still a nice way to share a few photos directly with friends or family.
Of all the built-in web-applications found in ownCloud, Documents impresses me the most. By default, this application will take any openDocument file4 and open it in a lite editor, capable of applying paragraph styles, changing between several fonts, altering text size, and changing character formatting. Apparently, this functionality can be increased by installing OpenOffice on the server and make it accessible to ownCloud. I haven’t tried this yet, as I don’t want my Raspberry Pi to melt, but it’s an intriguing thought.
If a document is shared between users on the ownCloud server, it will even track changes made by different editor. While the base install is by no means a full featured Word Processor this is a good alternative to storing organizational or personal word processing files on a third party server like Google Drive.
This application functions like the web interface for Dropbox. It lists files and directories, and offers options for sharing public links, opening up collaboration between users, deleting files, and exploring past versions of documents.
My Favorite Feature – WebDAV
While the simplicity of a DropBox-like setup is compelling, I don’t necessarily want my cloud data taking up the limited storage on my MacBook pro. After all, that’s why I have it in the cloud.
ownCloud allows users to bypass the DropBox-like sync client and mount their user’s account as a network hard drive through a standard called webDAV. While accessing data this way isn’t as fast as with local copies of synced files, it will still give users access to all their data for viewing/editing/uploading, and sync changes as they happen. In my use-case, this is a killer feature.
To the Future?
There is no doubt the cloud is the future for data storage, and ownCloud is certainly a worthy entryway into this new paradigm. It offers near universal access to data, very nice collaboration and sharing tools, and the reassurance of knowing exactly what’s happing to the physical location of one’s data.
Still, given it’s highly-geeky installation, it may not be for everyone. Many people might be better served by purchasing a networked hard drive which has cloud features built-in. These types of drives require less knowledge and maintenance, and offer reasonable security5. For the adventurous souls who not only want to use the cloud, but also understand a bit about it, ownCloud is an excellent way to enter this world. It has certainly become a favorite of mine.
- The tutorial I link to above leaves ownCloud running with sqlite as the backend, which is not recommended by the ownCloud community. I had to later convert the backend to MariaDB. It’s not difficult, if you are fine connecting to a database on the command line. ↩
- Unfortunately, as of this writing ownCloud isn’t able to make use of iOS 8’s expanded flexibility for storage providers. I’m hoping it comes soon. ↩
- Not to mention, stored on a server owned by the user. ↩
- This is the open file-format used by OpenOffice and variants. ↩
- At least, that is, as long as the company feels it wants to keep releasing security updates for the system. ↩