I’ve just installed OwnCloud on my Debian server, and I’d like to take a few minutes to review its functionality and performance. For those who read my blog, you’ll know that I hate the word “Cloud.” However, OwnCloud has actually used the term properly, so they are forgiven.
OwnCloud is basically an open source Google Drive. Currently, it provides a similar level of functionality as DropBox, with several key differences. First, the payment structure is obviously fundamentally different. While an enterprise version and various subscriptions are available, the cost for the open source version is $0. The Desktop sync apps are based on open source libraries and are also available for free. The mobile apps for Android and iOS respectively cost $0.99, which I deem a very appropriate cost to offset the development costs and the “App Store Fees.” The extent of the cost you have to pay is for storage capacity, computers, and $1.98 for mobile apps.
For up-and-coming version 6.0, OwnCloud also features a built in cloud document editor similar to Google Docs, although having not tested or worked with it I cannot confirm its functionality. Either way, even basic functionality in this regard would be impressive and would mean I don’t have to rely on Google.
You can also import your contacts and calendars, giving you the capability to self host several very common cloud services.
The enterprise version includes many interesting features:
- (Support) => not so interesting
- Access to roadmaps
- Development input
- Home directory mounts
- Provisioning API
- Mobile Apps (I assume this means they’re included)
First, install Debian. I don’t have time to tell you how to do that. You may as well provision your system as you like it. I recommend installing sudo, tmux, vim, etc. and making your own user account. If you’re planning on doing much of anything here you’ll want a nice large storage drive. You can mount it over /data below, and you may also want some sort of RAID or redundant system. I’m planning on using a WD Red set for mine, with a cron rsync job to sync every hour or day.
Given the good glory of Debian’s aptitude, you can pretty much just do:
# apt-get install owncloud
And then you’re done. Well, not quite. You need to have MySQL installed and configured. If you haven’t installed it, it should prompt you for a new root password during installation. You’ll want to create a database:
mysql -u root -p **enter password you set** mysql> create database owncloud; mysql> grant usage on *.* to owncloud@localhost identified by 'owncloud'; mysql> grant all privileges on owncloud.* to owncloud@localhost; mysql> quit;
Go ahead and make your own little folder for data storage:
# mkdir /data # chmod 770 /data # chgrp www-data /data
Debian by default does this annoying thing where http://192.168.1.100/owncloud/ redirects to the owncloud. If you’re fine with this, go straight ahead and set this bad boy up. If not, you’ll want to set this up in a virtualhost (/etc/apache2/sites-available/some-site.conf):
<VirtualHost *:80> DocumentRoot /usr/share/owncloud ServerName owncloud.axfp.org <Directory /usr/share/owncloud/> Options +FollowSymLinks AllowOverride All <IfVersion < 2.3> order allow,deny allow from all </IfVersion> <IfVersion >= 2.3> Require all granted </IfVersion> </Directory> </VirtualHost>
Now if you:
service apache2 reload
You should be able to access the server by typing in your virtualhost address in the config. I would very much recommend setting up SSL and buying a cert if you’ll be doing much more than some cursory testing. This will allow flawless encrypted content across mobiles and desktop clients. Regardless, a self-signed cert will protect your credentials and content.
Once you load the URL, setup using the following values:
Database name: owncloud Database user: owncloud Database pass: owncloud Database host: localhost Folder: /data User and Password as you desire.
Then submit and you should be all set to log in and start provisioning. Make a couple of users and set the default storage per your preference.
The only thing here that’s unintuitive is the admin feature. Users in “admin” group can administer the server. Putting a group of users into a “group” just categorizes them. You can select a user to be a “group admin” of a particular group and then they can adjust storage quotas and create users within that group. You can probably just let that be and ignore it.
This is some seriously cool and powerful FOSS software. I’m excited to see OwnCloud continue in increasing the capabilities of their product line.
If you run your own server, you can own the entirety of your “cloud content.”