This is something I’d wanted to do for a while. If you aren’t familiar with the open-source tool, OwnCloud is file storage, sharing, and syncing service similar to Dropbox. In fact, a great deal of OwnCloud works just like Dropbox. You install a client, store files in a folder, and this folder is synchronized with “the server” as files are updated. Files are stored locally on the user’s computer, as well as on the OwnCloud server. Since the files are stored in OwnCloud, you can have many clients running on several computers keeping these files in sync. I thought it might be a great time to set up this great tool and see how the process looks.
The first step was to check out OwnCloud’s website and understand what operating systems this might work on. They maintain that installation on openSUSE is the best way to go (mainly because of predefined packages) – so if you’re new to this, that’s probably where you should start. Me, I was much more familiar with CentOS, so I decided on that platform (yes, I’m a glutton for punishment).
I faced several challenges while trying to get OwnCloud up and running. The configuration options and commands needed for the different Linux distributions seemed daunting with so much noise about the process out there. Thankfully, I was able to find various different blogs that helped me along the way. The good news is that OwnCloud on CentOS is not a new idea and works amazingly well once setup.
Ultimately, I tested OwnCloud on a bare-metal server  as well as a virtual machine . Both worked great. I even had an OwnCloud install running on a machine with only 1GB of RAM, certainly not preferred, but it ran fine.
I also wanted a larger drive. My first installation started with just a 40GB drive, and I wanted to add a 350 GB drive to the current installation. I started by adding the new drive to the server, partitioning it, formatting and mounting it. Then, adjust OwnCloud‘s data configuration , and simply move all the files in OwnCloud‘s data directory. I was hit with a bunch of errors until I clued into moving the hidden files and the appropriate ownership and permissions. Once I did that, OwnCloud was good about getting back up and running and syncing again with the new, larger drive. The clients did not need to do a full re-sync in my experience. Of course, that scenario is replacing a smaller drive with a bigger one, and not adding to an existing pool of data. I would love to hear your experience with that process.
The real power comes in when attaching a hostname to the server and using OwnCloud‘s many sharing facilities. Much like you would in Dropbox, open the web interface, choose the file you want to share and go through the process. Currently, you can share a link to the file, get a password on the share and even choose an expiry date. You can’t yet set a limit on a number of downloads, but I’m sure it’s been suggested.
Also, using a Dynamic IP is possible. Here’s how I did it:
1. Set Up a hostname with a dynamic IP host – I used No-IP
2. Install the updater on Linux. I used these instructions, but match it to your service. You’ll want to make sure it runs on boot.
3. On your DNS, decide on a hostname (the shorter the better), and add a CNAME record that points to your dynamic hostname.
With that, your OwnCloud server IP changes shouldn’t cause too much pain, and you’ll have a greater range of options as far as places you can install the server. It’s not perfect (having a static IP should be a priority), but it’s an option.
Then, there’s the synchronization client. While using version 1.8.0 on Windows XP and connecting to the server non-SSL, the client was working fine. When I attempted to switch the client from http to an SSL connection, the app crashes and offers little detail more than a nondescript offer to send a report to someone (offering to let us see the report would help!). Instead of fighting to find a way to get at logs, I just uninstalled and reinstalled the sync client, reconfigured it and things appeared to be working on SSL. The client on OS X worked with no issues.
Right now, two big features are missing:
1. Deduplication – Known as the process of reducing the amount of space used by dropping bits (or files) that are the same. Since this is probably an OS-Level process, it makes sense that OwnCloud wouldn’t do it, but having an integrated or preferred option for installing this feature would make OwnCloud very awesome .
2. Synchronizing Delta changes in files – Probably the biggest reason why you would ditch OwnCloud and go to DropBox. Since the process of synchronizing bit-level changes is a hard thing to do, I don’t expect this feature will come fast. The good people at OwnCloud appear to be working it and can be supported at BountySource. I encourage you to contribute to them (or just to the general project).
3. Enhanced Space Management – OwnCloud‘s support for controlling how much space users take up happens in the user administration page. But, the server doesn’t give much indication about how much space all users are taking, how much they’ve been allocated (based on the total available space), and general finite control over how the pool of data you have is used. Considering a simple installation might run on the boot (or only) drive available, filling this up might lead to system failure. Adding options and tools to manage pools and limits would be a major enhancement.
While testing out the server, an update from 8.02 to 8.03 was available. There are several ways to go about an update, but I attempted to simply use CentOS’s own package manager (yum)  to run the update, and all worked out well. There appeared to be some back end web errors, but the rest of OwnCloud worked as expected without problems that I could see.
Update: While testing the thought of connecting with multiple accounts (from the client) as a means of separating personal files from a larger, public pool of data. Based on what I’ve seen, the Windows and OS X clients can only connect to a single account. Interestingly, the iOS app allows more than one account connection. It seems like a common request and many have attempted workarounds.