Build Your Own Cloud Music Server

Putting your media files in the cloud is hot these days. first, it was amazon.com that came up with the online storage service, then Google came up with their Google Music service, then a few days later Apple announced their iCloud stuff, and I heard rumors recently that BestBuy is getting their cloud service ready as well. the cloud competition is getting very fierce!

What is this cloud hype all about, you may ask.

The cloud is supposed to be a place where you dump all your music, videos, and photos, and then access that stuff from any computer or mobile device needing only an Internet connection and a browser. basically nothing is stored on local computer hard drives, or SD cards on mobile phones, all is there in the cloud. I don’t know how much money the cloud providers will be charging for their services, but I heard Google will charge around 20 dollars per month after their product comes out of beta, and I heard Apple iCloud will be free as long as you stay in their monopoly. BestBuy probably will charge an arm and a leg for it, etc.

My only concern with these cloud services is, how will they deal with pirate stuff?

let’s face it, most of us have music that we have downloaded using a P2P client, or any other file sharing software without paying a dime for the files. I have more than 20GB of music on my private cloud, and many many of them have been downloaded using a P2P client, or downloaded from YouTube. how will music record labels react when they realize people are uploading pirate music files to these cloud services? in my opinion most likely they will force cloud providers to delete “uncertified” files, or people will have to pay for a license for each pirate file they upload.

not good.

so how can we benefit from the cloud conveniences without worrying about getting caught with pirate stuff? the answer is by building our own cloud server. for many people the idea of building their own cloud server is terrifying because they think is too technical for them to do, but let me assure you, is not, its actually very easy. in this post I will show you how to build your own media server, and how to access that media stuff from any computer and from your Android, iPhone, or windows 7 phone device. bear with me, this will get interesting.

Getting the server ready for the cloud

This is the most difficult part in the tutorial, but bear with me and I will teach you ways to get your server ready and accessible from the Internet. the easiest and less technical way to get a server is to buy a VPS ( virtual private server ) from a server hosting provider. linode.com sells VPS machines with prices starting from 19.99 dollars a month. if you have a lot of media files probably their starting plan would not be able to fit you right from the start, but to begin your cloud experience you can start with that, and then add disk space to your VPS as needed once everything is up. the good thing about this option is that the VPS already comes with the operating system ( Ubuntu server )  and the external IP address you will need to access your media stuff from any computer, or your mobile device.

Use Amazon EC2 to host your server. Amazon EC2 is a very interesting concept, but requires a bigger learning curve to figure out. for those already familiar with Amazon EC2 I think is the easiest and cheapest way get a server to host their media stuff.

Use your own computer at home to host your media stuff. this method is probably the hardest and most expensive to go with. but let’s assume you have a decent box at home that you can use as your cloud server, then you will need to contact your Internet provider for a “static” IP address. most home Internet providers are reluctant to give static IP addresses to their customers, they will argue that you don’t need one, and if you want one you need to have a small business Internet account, la,la,la etc. tell them you work from home, and you need a static IP for VPN access, and terminal server connection. I know it’s a lie, and inaccurate, but sounding technical, you will come up more credible. see.

Getting the operating system on the Server ready

let’s assume that you already came up with a server to host your cloud. if you bought a VPS you probably got the option of what operating system to use ( I highly recommend Ubuntu Server ) because that is the OS I am familiar with, and I know is reliable and the easiest to use. you also should have gotten the IP address to access the server ( that’s the IP you will use to access your cloud ) and  pretty much, you’re all set to go. for Amazon EC2 users is pretty much the same, just create your instance ( the basic should be enough ) then assign an elastic IP address to it, and you should be ready to go.  for those hosting their own server from home will have to build the server from scratch, please follow the tutorial from this post Install Ubuntu on how to get Ubuntu Server ready on that box.

Installing the cloud software

OK. its time to get ourselves dirty. up to this point, you should already have the server with Ubuntu Operating System already on it, and an external IP address pointing to it. let’s download the software to build our cloud. the software we will be using is called Subsonic and is 100% open source which means is also free to use. download the Ubuntu package from here and save it to a directory on your local computer, remember you are downloading this to your local computer not the server.

now connect through FTP to the server. I use the FileZilla client ( remember to use FTPS and use your SSH credentials to login) and upload the subsonic.4.4.deb file ( at the time of this writing, 4.4 is the version number) to the directory called /var on your server:

image

once the file is uploaded, we need to install the package. but first, let’s make sure JAVA is installed by running this command on your server command line:

sudo apt-get install openjdk-6-jre

accept all the prompts.

now, let’s install Subsonic by running the following command:

sudo dpkg –i /var/subsonic-4.4.deb

that should install the package.

now open the browser on your computer and type the IP address of your server like this http://95.203.189.23:4040 ( replace the IP address in this example with yours ) you should get subsonic welcome page:

image

login with the username admin and password admin ( don’t forget to change this credentials as soon as possible )

click on Settings once you logged in:

image

then setup the Music Folders :

image

if you notice, subsonic is looking for the folder music under the /var/music path. let’s create the folder from the FTP client:

image

now, upload a few songs  to this music folder, and click on Music Folder > Search then click on Update Search Index now:

image

now those songs should be available to be played from the server!

upload all the music files you want to the music directory, and you can play that music from any computer using your URL http://95.203.189.23:4040 ( example )

now to access your music from mobile devices look at this page on how to configure your specific device http://www.subsonic.org/pages/apps.jsp

with some tweaks, found at the subsonic forum http://www.activeobjects.no/subsonic/forum/ you can setup subsonic for videos and photos as well…

enjoy your personal cloud.

More Subsonic Tutorials