Run Your Own Cloud Server Locally, Internally, or Publicly – ownCloud

There are tons of Cloud Services out there that you can go out and sign up for free, download, and have a blast with. Companies such as Microsoft, Google, Apple, and Amazon have all jumped on board (the four horsemen). The big innovators of the space you’ll see out there are Dropbox for personal use, and Box for business use. Of-course you can use either for whichever reason. But putting any sensitive information out on Dropbox, Box, or even Microsoft, Google, Apple, or Amazon all have their own risks. The risk is that your information is now in the web and if cracked, can leak to people you may not want to have access too. There are many cases of this happening with Dropbox, as it is one of the bigger players in the space, it gets a lot of attention.

Maybe you want to run your own cloud service? The good news, it is Extremely easy to setup! If you know how to open up a port on your home firewall, setup a desktop as a server, or potentially have a box that is suited for serving, you too, can have an extremely secured and private cloud service.

The essence of cloud simply means that you have your data and files stored in multiple places at once. If your server goes down, you can retain your information from one of your clients. Or you can setup two servers for redundancy. All it takes is a web server (Apache or IIS) that runs PHP, a MySQL database, an open port, some DNS mapping (preferably local), and a piece of software called ownCloud. Since I am a developer, this took me a matter of minutes to setup.

I will try to quickly go through it.

Server Setup
You can short-cut the setup using XAMPP. This will setup an Apache, PHP, MySQL setup over Windows or Mac very easily. You will likely have to add a few additional extensions in the PHP.INI file, enabling php_mbstring.dll and php_openssl.dll.

C:\xampp\php\php.ini
owncloud_php_config

Install ownCloud server by downloading the ownCloud server from their website and selecting the TAR/ZIP version. Extract the files out to a common location that you can remember. I used C:\owncloud\ for simplicity.

owncloud_web-app

You will also want to setup a new Virtual host in Apache to allow the web bindings to take place. We will just use HTTP over 80 in this instance.

C:\xampp\apache\conf\extra\httpd-vhosts.conf
owncloud_vhost

Client and Server Hosts File
You will also want to configure your host records to point to your server. Pick a domain and then place it in your hosts file. In this example, the hostname is oc.ph and it points locally (127.0.0.1). This would be the configuration for the server. The client connections will want the IP address of the machine, and if you are running externally, you will need to set the IP to the address of the router and then setup the firewall routing.

C:\Windows\System32\drivers\etc\hosts
owncloud_hosts_file

You will need to add the new hostnames to the ownCloud config file located at ownCloudRoot\config\config.php
owncloud_config

Database and Setup Screen
As long as you have all the dependencies for your PHP / Apache setup, you should very quickly and easily get your setup screen. Here is likely a good time to create a new MySQL database, if using XAMPP you can use http://localhost/phpmyadmin and create a database. Then select the database and click permissions. You can add a user and GRANT ALL permissions to that database. Use that username and password in the setup screen under DB info.

To start up your page, use the hostname that you setup: http://oc.ph – Sometimes with those odd extensions, it makes sense to type out the full URL into the address bar.
Then setup your own username and password for the admin account and you are set.

Login and View Files

You should be redirected to a Login Page and after logging in, you will see your new Cloud Server.
owncloud_loginowncloud_general_look

Other Thoughts

It’s also recommended that you install OpenSSL and bind over port 443, better yet use some other port than 443 to confuse potential intruders. Internal to your network, I would suggest having a default slave that stays on all the time. This way your data is redundant in the case of a disk failure on your server. Remember you can always use Windows 7 or Mac machines as servers. They do not have to be bulked out PowerEdges. This is just your data.

Client Side Setup

You will need to setup the host records for your clients and determine if you want this publicly visible or not. It would be the same as before, except with the servers IP address as the host.

C:\Windows\System32\drivers\etc\hosts
owncloud_client_hosts

Install ownCloud client by downloading the ownCloud client from their website and selecting from the Desktop Sync Client’s.

owncloud_client_what-to-click

The setup process is extremely straight forward and intuitive. Run through the steps putting in your username and password you setup in the Server. Select a folder that will be the sync point and off you go!

owncloud_client_setup

I hope you liked my brief tutorial. It’s quite fun. I am experimenting with a few uses. One includes a private Cross-Over network connection linked with a external service to ensure fast replication.

The app takes a little while to sync and I would argue is a little slower than Dropbox, but it is all private and there’s no way anyone can touch the data through the private lines, which means, secure!

For more detailed documentation, find it here at ownCloud 6.0 Admin Documentation

About Phillihp Harmon

I'm Phillihp. My name can be spelled the same way forwards and backwards, so can my posts... if you wish. I'm out here exploring, learning, and sharing what I find. This is more for fun and personal growth, I aim to be as consistent as possible, so check back daily!
This entry was posted in ***, Amazon.com, Apple, Architecture, Cloud Computing, Clusters, Databases, DIY, Google, Internet, Microsoft, Windows. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>