Create your own cloud storage
Share this page with your friends! Tweet
Cloud storage is a hot topic at the moment and Microsoft has SkyDrive, Apple is launching iCloud, there's Dropbox, SugarSync, Mozy, ADrive and dozens of others. They are part backup, part file sync and part online drive and they can be used in many different ways. For example, they can be used as a backup service to keep your important files safe or as a sync tool to ensure that no matter which computer you use you have access to the latest versions of your files. Some services provide you with a couple of gigabytes of online space for free, but for larger amounts of online storage space you will be charged a monthly or yearly fee. How would you like terrabytes of cloud storage space for just a small one-off fee and no monthly charges? All you need to do is to build it yourself! Yes, you can build your own cloud storage service that offers huge storage space with no recurring costs.
The small one-off fee mentioned is for an NAS drive. Network Attached Storage is basically a hard disk drive inside a small case with its own power supply. It connects to a network device such as a hub, switch or router using a LAN cable and any computer on the network can access it. If you have a wireless router then any wireless laptop, computer, mobile phone or tablet can access it too.
Perhaps you are thinking that this doesn't sound much like cloud storage, but you can easily put the NAS device online. If they are plugged into a router that is connected to the internet, for instance, then you can access your NAS drive from anywhere. You can be out with your laptop computer and using a free Wi-Fi hotspot, such as at a cafe or hotel, you can access all your files on your NAS drive. You can back up your laptop while you have a Starbucks coffee, upload photos and videos from your smartphone while on holiday, or grab files you need on your tablet while eating a burger at McDonalds. It's great having your own cloud storage.
The NAS drive
Go to Google, click the Shopping link at the top and search for NAS. There are a lot of units on offer and the prices vary depending on the features you need and the amount of storage space they contain. I'm using a Buffalo LinkStation in this example and it was chosen because it was one of the cheapest 1Tb NAS drives available at the time. It still has plenty of features though and it is fine for creating your own cloud storage system.
The NAS drive has FTP capabilities, but they are not enabled by default, so you've got to get in there and configure it. The Buffalo LinkStation, like many, is accessed using a web browser and you just type the IP address into a web browser - it's 192.168.2.2 in my case, but yours might be different.
You wll be prompted for a username and password, after all, you don't want anyone to have access to the NAS drive. Check the documentation for the default and change it once you get in. Don't leave it set to the default. The Buffalo LinkStation goes straight to the Folder Setup page where it shows the folders on the drive and lets you create new ones. Your menus might look different, but they will have similar features.
When you create a new folder, there are lots of settings and one of these is support for ftp. This should be selected and also the folder should be enabled for read/write. This means that other computers and devices can connect to the NAS drive using ftp and upload and download files. No other part of the system will be accessible, just this folder and it's part of the security.
Now that ftp access is enabled on the NAS drive, it can be accessed from any computer on the network using an ftp program. The address to enter is the IP address of the NAS, such as 192.168.2.2. Notice the optional access restrictions box above. This is to enable you to limit who can access a folder on the NAS and you can create users and specify usernames and passwords. The administrator - the username and password you use to log on to the NAS drive with a web browser - has access by default, but you can add others if you need to. It's up to you how much security to add, but you should certainly add some restrictions unless you want to make the ftp access public.
The NAS drive can be accessed by any device on the network, such as a Windows PC, Mac, Linux PC, tablet, smartphone and so on. They just need an ftp program. It cannot be accessed from outside the network, such as when you are in a coffee shop with a laptop and a Wi-Fi connection. This is because devices on networks have private IP addresses that only work on the local network. The router that provides internet access will have a public IP address that can be accessed by any device anywhere on the internet. What you need to do is to set up port forwarding.
The internet is accessed through ports. It doesn't really matter what a port actually is and you just need to know that it is a number. A web browser communicates through port 80, an ftp program through port 21 and so on. What you need to do is to configure the router so that if an ftp program accesses it on port 21, it forwards the request to the appropriate device on the network. In this case the NAS drive.
You need to log on to your router with a web browser by entering its IP address into a web browser. The router's documentation will tell you what the IP address is, but there are ways of finding it out if you don't know it. In Windows 7 for example, go to Network and Sharing Center in the Control Panel and click See Full Map. Mouse over the gateway and the router's IP address is shown. Type it into a browser and then log in with the username and password (the default is in the router documentation if you don't know it).
Find the section in the configuration settings that enable you to set up port forwarding. In this example I've set up public port 21 (on the router) to go to port 21 on the device at 192.168.2.2, which is the NAS drive.
Now we can access the NAS drive from anywhere we have an internet connection from any computer or device using an ftp program. We just use an address like ftp://126.96.36.199 and whatever username and password we have configured on the NAS.
There is a snag though. Home users and perhaps some business users too, don't have a fixed IP address. ISPs have a pool of IP addresses and when you connect to the internet your ISP gives you one that's free. It may be the same as last time, but it could just as easily be a different one. You never know what your IP address will be from day to day.
The solution is a dynamic domain name service, such as DynDNS. This enables you to create a domain name and your IP address. Whenever your IP address changes you can update the record with the new IP address. There is a free account for home users, so go and sign up. I won't go through all the details because it is fairly straightforward. You'll find utilities on the website that run in Windows, Linux and on Apple Macs that automatically update DynDNS every time your IP address changes. They require you to switch on your computer though and there is a better method.
Go back into the router setup with a web browser and look for DDNS or Dynamic DNS settings. Here is mine in my router:
I just enter my DynDNS username and password and the router automatically notifies DynDNS every time the IP address changes. It doesn't require any software and it doesn't even need a computer. It just does it, which is great for accessing the NAS over the internet.
Windows sync software
We have our cloud storage device and can access it from anywhere and any device with an internet connection. What is needed now is some software to make it all work. Our cloud storage is accessed using ftp and so whatever software we choose, it must have ftp capabilities. Ftp clients are an obvious choice, but some only work in manual mode and you have to select the files to upload or download. This is tedious and prone to errors. Backup software often has ftp capabilities, but they are really optimised for copying files in one direction, from the local computer to the storage device.
It would be better if we could select a folder on the local computer and sync it with the cloud storage. This would copy missing files from one to the other and replace old files with newer versions either locally or in the cloud. We would then always have the latest versions of files on our computer.
A popular choice for this is Syncback, which is available in Free, SE and Pro versions. Try the free one first and if you need more features then upgrade it to one of the better paid ones. You may find that the freebie is all you need though.
SyncBack enables you to choose from ready-made profiles (backup and sync jobs) or to create your own. In advanced mode you have a lot of choice over the sync process and it is quite straighforward to set it up to sync a local folder on the computer with your cloud storage NAS drive. It can compare files and make sure the local and cloud files are the latest version, it can copy missing files from one to the other, and it can delete files either locally or in the cloud when they are deleted. You can even set a schedule and SuncBack will sync every few minutes, which is great because you don't even need to think about uploading the latest files to your cloud storage.
Deleting files presents some problems if you want to sync multiple computers with your cloud storage Dropbox style. If a file is deleted locally, should the file in the cloud be deleted too? But what if you then sync another computer at work or home, should the deletion be replicated on that computer? SyncBack can't tell if you deleted a file in the cloud or created one locally that needs to be uploaded. There are lots of options though and you could configure SyncBack to prompt you to choose the action to take when a file exists in one place but not the other.
If you want an ultra-simple free sync utility then Carbon FTP is OK. You can set up tasks to sync a folder including subfolders from the local computer to the cloud storage, cloud to local or both ways. It doesn't delete files, so you will have to do that manually, but it is good for ensuring that you have the latest versions of files.
Possibly the best utility is PureSync. This has some very interesting features and as with the others you can create sync tasks to sync from local to ftp and ftp to local. The automatic sync facility has some great features and a sync can be set to run automatically on startup, for example, to copy new files on the cloud storage to the computer. Another task can be created that runs on shutdown to copy from the computer to the cloud. This would ensure that the cloud and computer are kept in sync, but there's even more. Sync tasks can run automatically whenever the computer is idle or whenever a file in your sync folder is changed. This is just what is needed.
There's a free version of PureSync, but it doesn't have the ftp facility that we need. However, the Pro version is cheap.
Apple Mac sync software
Classic FTP is free and it is able to sync local and remote folders. It works fine with our cloud storage, but it has a limited range of features compared to the Windows programs above. It doesn't sync subfolders and it doesn't handle file deletions. You can always manually delete files and create folders though, and one click ensures that both the cloud and local files are the latest versions.
GoodSync is available in free and Pro versions and the main difference is that the free version is limited to 100 files per job. This might be sufficient for some people though and there's always the option to go Pro. It's worth considering.
Cyberduck is a free open source ftp program that has a synchronise function on the menu that will make local and remote folders the same. The interface is bit confusing at first because most ftp programs show local and remote file lists, but this just shows the remote files. Once you get used to it, it's OK though. It doesn't have auto-sync on startup and shutdown or folder monitoring like PureSync, but it is otherwise OK.
Linux sync software
As with Windows and Mac, you could track down an ftp program with file sync capabilities, but in typical Linux style here is a suitably techie solution. Open a Terminal command prompt window and enter:
lftp open username:password@url lcd localfolder cd remotefolder mirror quit
You'll need to enter your own details and username and password are the ones required to log on to your NAS using ftp, and url is the url. The localfolder and remote folders are the folders to sync and the mirror command copies the remote folder to the local one. Here's a real example:
lftp open roland:email@example.com lcd /home/roland/MyFiles cd /disk1/FTP mirror quit
This updates the PC with missing or changed files from our cloud storage, so it downloads files. There are a number of command switches and
To update the cloud storage from the PC (to upload changes) you use
lftp open roland:firstname.lastname@example.org lcd /home/roland/MyFiles cd /disk1/FTP mirror --reverse --delete --only-newer --verbose quit
Reverse the direction (upload instead of download), delete files I've deleted on my PC, only copy newer files and show a report.
Mobile cloud access
Like all good cloud storage services our DIY solution works well with mobile devices. However, there are some limitations. These aren't anything to do with the way that we have set up our cloud service and it is because of the way that mobile devices work. An ftp program running on a computer has access to the whole disk, but iOS apps on the iPhone, iPad and iPod Touch do not. At best they have access to photos, videos and a private storage area and some only have access to private storage. You can't, for example, write a note and then save it or upload it to your cloud storage because the note would be stored in the app's private storage area.
A really good free app for iOS devices is MyData File Manager. It is designed for LG's NAS devices, but it works with any. You just enter your NAS access details - the ftp URL, username abd password - and it connects straight away. You can browse the contents of the NAS, download files to the private storage area on the mobile device and even view simple files like text documents. The best feature is that you can upload photos and videos directly to your cloud storage. Imagine you are away on a trip, a holiday perhaps, and you have filled your iPhone with photos and videos. You just upload them to your NAS cloud storage and then clear the memory and carry on shooting. It's brilliant.