How to create your own cloud with Linux
We've prodded cloud computing from a technical point of view several times but, from a user's perspective, it's a lot more than your always-available hard drive on the internet. It's omnipresent across platforms and, with the proliferation of smartphones, even devices.
Apple created a lot of buzz when it announced its iCloud service earlier this year. It's designed to enable users to store content so it's accessible from all of their devices.
Guess what? With Linux you can do it better. In the following article we'll show you how to harness the power of the cloud to access all types of data stored on remote services on your devices - from Chrome on your office laptop running Ubuntu, to Firefox on your Fedora desktop at home, to your Android mobile phone.
And while Apple's iCloud is limited, in that it's for users of Apple's products, we'll look at services that cater for all the three major desktops, namely Linux, Windows and Mac OS X.
In the true spirit of open source, we'll also look at options that let you create your own cloud to share pictures with friends and family, stream music to your devices or keep your calendars in sync, whether you modified them in the office or at home.
At the end of it all, you'll be able to sync bookmarks and carry your browser passwords from your netbook at home, to the laptop in your office, to a lunch meeting on your Android phone. We'll show you how you can send and receive email on any device from all your accounts, whether on a webmail service or hosted on your own server, and always have your calendars and contacts with you.
We'll also cover tools that enable you to take pictures with your Android phone and instantly share them on a website such as Flickr, or a social network like Facebook, or upload them to your own cloud. We'll even show you how to buy music from your Linux desktop and stream it onto your mobile phone. That's how you make cloud computing work for you.
Applications
Strip away the buzz about cloud computing and all you've got is a web application that gives you the look and feel of a native desktop app, but runs inside a browser and is hosted on a remote web server halfway around the world.
At the expense of some features, you get the ability to access all your documents created with the web app from any device across the planet. This has paved the way for low-cost netbooks with just enough juice to run stripped-down versions of operating systems to access these apps.
Desktops in the sky
You can run web applications from their own interfaces, but for a more familiar way of working, there are several options that let you assemble them inside a browser-based virtual desktop.
Jolicloud runs inside any web browser on any platform and lets you add or remove any number of web apps to the desktop. It's integrated with online storage services such as Dropbox, which means you can access your web app files wherever you are.
Another way to use Jolicloud is to install JoliOS on an older computer or netbook. This enables you to also add and access some platform apps, such as the media player VLC. Since your apps are associated with your online account, when you log in to Jolicloud, either from the web interface or from JoliOS, it will automatically sync your apps across installations.
Peppermint OS, which uses ICE, is a site-specific browser based on Chromium, which also makes web apps feel more like their desktop brethren. Web-based services have become synonymous with cloud computing; you can't mention one without the other. But there's more to cloud computing than feeding off services that live on remote web servers.
Wouldn't it be great if you could access your everyday desktop apps, from anywhere, on any type of machine, irrespective of its hardware prowess? And when we say desktop apps, we mean both Linux and Windows.
That's exactly what Ulteo Open Virtual Desktop (OVD) is designed for. After you've got it set up, you can serve as many native Windows and Linux apps to as many concurrent users. And it gets better: in the true spirit of the cloud, all that's needed to access the desktop apps is a web browser.
Ulteo OVD relies on two components - a Session Manager and an Application Server - to create virtual desktops that run inside web browsers. To deliver both Linux and Windows apps, you need to run application servers inside at least one instance of each OS.
Setting it up isn't too much hassle, but you will need to be familiar with the network setup. It's ideal for installations that need to deliver a mixture of apps and are willing to take a hit in performance. Since the apps are served from within remote application servers, make sure these machines are powerful enough to minimise the performance penalty. If you run multiple instances of app servers, you can easily balance the load between them.
The best thing about Ulteo OVD is that it can also act as a centralised file manager. Users can create and save files on the server for their own use, as well as creating shared folders.
Files and documents
There are two ways to carry your data with you wherever you go: you can either send it to one of several online storage providers, or let the web app keep it for you.
Google Docs is an example of the latter. This free service lets you create and share text documents, spreadsheets, presentations, drawings and more in various formats, including PDF. It's also available as an Android app, so you connect to it and work on the documents from your mobile phone.
Besides creating and editing documents, you can use the Google Docs Android app to upload images to your account. The browser-based version also enables you to upload PDFs. All the documents created either on the web interface or uploaded from your phone are kept on Google's servers, and are thus accessible from wherever you connect. Additionally, you can share these documents with other Google Docs users, who can in turn share their docs with you.
The basic free version of Google Docs allows up to 1GB of free storage and you can purchase more space starting from $5 (about £3) per year for 20GB. In its current form, Google Docs requires an active internet connection for you to work on your documents, but the ability to work offline, which leverages the HTML5 capabilities of the Chrome browser, is about to be rolled out.
Another similar option is the Java- based ThinkFree Office suite, which is pre-installed on several Android-based handsets.
Online duffel bag
If you need dedicated storage warehouses to keep your stuff online, there are plenty of services available.
Canonical's Ubuntu One service is tightly integrated into new releases of the distro. You can sync files with your online Ubuntu One account via the right-click Context menu. You can then view these by logging on to the Ubuntu One website. You can also upload files via the web interface, which will automatically be synced with your Ubuntu installation.
Dropbox is a cross-platform service and both Jolicloud and Peppermint have built-in support for it, so you can access your files from any of these web desktops.
A more comprehensive cross-platform solution for backing up and syncing files is SpiderOak. You can mix the web apps to get out of a sticky situation. For example, what if you need a file that's on your desktop at home, and all you have is your Android phone?
If you have the TeamViewer remote desktop viewer on your desktop, you can connect to it using the TeamViewer app on the Android device, copy the file into Dropbox or share it via SpiderOak, and it will automatically be synced to your phone.
Address book, calendar and email
For those who you work on the move, access to your emails and address books is vital if you want to stay productive. You need to be able to sync them across your office and home computers, across operating systems and to your mobile phone.
Online email, by design, is globally accessible and requires nothing more than a web browser, but there are tools that enable you to use it offline, either on your laptop or on your phone, and then sync the two when you go online.
If you use Gmail or any other web-based email service that enables you to grab email via the IMAP protocol, you can keep your online account in sync with your laptop by connecting to it via any cross-platform email client, such as Mozilla's Thunderbird or Novell's Evolution.
Accessing Gmail on your Android device is a no-brainer, since these phones ship with a Gmail app that helps you set up multiple Gmail accounts, and even downloads messages for offline viewing.
If you use your own hosted email server, you can access it from any computer via a webmail client such as Horde, SquirrelMail, Roundcube and so on. Just like with Gmail, you can fetch emails from your own hosted server into a desktop email client as long as you know its IMAP settings.
Android phones also enable you to sync email accounts from your hosted email server via IMAP. You'll find several IMAP email clients on the Android market.
K-9 Mail is one of the most feature-packed and, alongside IMAP, also supports POP3 and Microsoft Exchange Server. K-9 also works with the Android Privacy Guard (APG) app and enables you to send encrypted emails.
As well as email, once you've set up a Gmail account on your Android device, your address book and contacts are also automatically synced. Any additions or changes to your Gmail calendar or contacts will automatically be reflected on your phone, and vice versa.
Google Calendar supports the CalDAV standard, so you can sync it with Microsoft Outlook using the Google Calendar Sync utility, as well as with Apple's iCal or Mozilla's Sunbird.
Similarly, there are extensions for desktop email clients to sync contact information. The Google Contacts add-on for Thunderbird automatically detects Google accounts and syncs contacts between the Google and Thunderbird address books. If you use Evolution, your client already has the built-in ability to sync your Evolution contacts with Google's address book.
Step-by-step: Set up K-9 on Android
01. Add an account
After you've downloaded and installed K-9 from the Android market, start the setup process by entering your email address and password.
2. Connection settings
The next step involves specifying the IMAP connection settings for your webmail server. The K-9 setup program tries to guess the values based on your email address.
03. Account settings
After you've set up your account, you can fine-tune it. You might want to hook it up with APG to send encrypted messages or ask it to store messages in the SD card.
Music, photos and social networking
Music
If you had to pick one area of the Linux desktop that's seen tons of development over the past few years, it has to be multimedia. Everything, from recording to streaming, has improved in leaps and bounds.
Popular music players, such as Banshee, Rhythmbox and Amarok, can now handle media in all formats, in patent-encumbered codecs including MP3, MPEG and WMA, and free formats such as Ogg, Theora, FLAC and so on.
Banshee is the default music player in Ubuntu, while you'll find Rhythmbox in several Gnome-based Linux distributions and Amarok in KDE-based ones. Besides playing music, you can use all three to subscribe to the RSS feeds of your favourite podcasts and internet radio stations such as Last.fm, and listen to audiobooks from LibriVox.
With both Amarok and Rhythmbox, you can stream music from Jamendo and Magnatune, while Banshee lets you buy music from Amazon's MP3 store (currently only available to its US customers), and from Ubuntu One Music Store.
When you buy tracks from Ubuntu One's music service, the songs are automatically synced with your Ubuntu One account, so if you format your disk, or move to another computer, your music moves with you. Just log in to your Ubuntu One music account from within Banshee and your tunes will automatically be synced to the new machine. You can also install the Ubuntu One Music app from the Android store, and listen to your music on your handset!
Stream machine
If you don't use Ubuntu, or need to stream music from your own cloud, you have a couple of options depending on how you've set things up.
The easiest way to stream your music collection is with Tonido. The software includes a music streaming app, aptly called Jukebox, that enables you to access all your music from anywhere on the internet via a web browser or on your phone via an Android app.
Jukebox supports several popular formats, including Ogg, MP3, WMA, FLAC, M4A and so on. Just point it to your music folders and it'll create a database of your entire collection. It also has some powerful management features, and even enables you to edit MP3 tags to make the songs searchable. Additionally, you can create guest users and stream your entire music collection to them.
If all you need to do is stream music, get yourself the Java-based Subsonic server, which is a dedicated music streamer. Besides making your music collection accessible via any web browser, it too can also stream music to an Android mobile phone. Subsonic supports any music format that can stream over HTTP, including MP3, Ogg and AAC.
If you have music in another format, such as WAV, Subsonic also includes a transcoding engine that converts music to MP3 before streaming on-the-fly.
Share your music
Other people can subscribe to your music stream with network-enabled media players, such as VLC or iTunes, or use the in-built Flash-based player to listen from within a web browser.
Subsonic uses a battery of open source software for tasks such as on-the-fly resampling for streaming to locations where bandwidth is limited, and for parsing and editing MP3 tags. It also implements the SHOUTcast protocol, which enables players that support this protocol, such as Winamp, iTunes and XMMS, to display metadata information on the playing track.
Binaries for Subsonic are available in both Deb and RPM formats, as well as in the WAR format for deploying Subsonic with a Tomcat, Jetty, GlassFish or Geronimo server if you have one already set up. Subsonic can also be used with Windows and Mac OS X.
Once you've installed the binary under your platform, head to your web browser to do some basic configuration, such as pointing it to the folder where you keep your music, then tweak network settings to access the installation over the internet.
Photos
Something that almost all of us keep on the web are images, be it on Facebook, Flickr, Picasa or any other photo sharing service. There are a whole host of tools that enable you to edit, tag and upload images from your computer to these services.
In addition to cross-platform tools offered by the services themselves, many popular image-editing programs have the ability to upload images as well. Flickr doesn't have any official tools to manage your photo stream from Linux, but you'll find a couple of nice third-party tools in your distro's repository.
Check out Postr if you want a simple upload-only utility for Gnome. For KDE users there's Kflickr. There's also the Desktop Flickr Organiser for Gnome users, which isn't under active development but still works. In fact, most of these tools haven't been updated in a while, but they all work as advertised.
The easiest platform-independent way to upload photos to Flickr is by emailing them to your unique Flickr address using the subject line to specify a title, and the body to add a description and tags. Google has a photo management app for Linux that will also upload images to its Picasa web album service.
Mobile phones have added a new dimension to uploading images to photosharing sites. Many Android phones ship with Facebook and Picasa apps that, when configured, can upload images to your accounts on these websites straight from the mobile phone itself.
Then there's Flickr Companion, which is one of the most popular tools for managing your Flickr photostream from an Android phone. It lets you set up and manage multiple Flickr accounts, and browse the Flickr photos, sets and collections under each. The best bit is that you can download your images directly from Flickr on to your phone and set them as wallpapers or contact photos.
Share scheme
If you don't want to rely on these services, you can create your own web album, either by using a dedicated content management system built to host images, such as the Gallery CMS, or with plugins for a normal CMS that add photo management features to it, such as the YAPB plugin for WordPress.
The better option, if you wish to keep the photos to yourself, with the convenience of directly uploading them via a mobile phone, is to use Tonido. The NAS software bundles an app called Photos, so you can share your exploits with the camera with friends and family.
As with all things Tonido, the Photos module also has comprehensive organising abilities and enables you to tag the images. Once shared, others can rate the photos and comment on them. All they need is a web browser.
Step-by-step: Uploading images to Minus
1. Register
Minus is a new online sharing service that keeps your images (and other content) in sync, whether you've uploaded it from a browser or from your mobile phone.
2. Install on desktop
Once you've registered with the service, you can download its client to your Linux desktop, or as an extension inside the Chrome and Firefox browsers.
3. Install on phone
The Android app enables you to upload images from your mobile. Minus ensures that no matter how you uploaded the images they're visible on all your devices.
Social networking
By its very design, a social networking service lives in the cloud, a lot like web-based email services. As with any web-based application, the main advantage is that you can use it from within any web browser. The main disadvantage is that it isn't always straightforward to use it offline.
There are several desktop apps on Linux that enable you to send tweets, dents and updates to your Twitter, Identica and Facebook accounts. There's Gwibber for Gnome users, and Choqok if you run KDE. Both work with multiple social networking services, and even let you browse through your timeline when offline.
Similarly, there are several instant messaging clients that work with a variety of IM services and even IRC. Empathy, Pidgin, Xchat and Kopete are the most popular.
If you need one app that can work across social networks and does IM as well, there's Yoono, which supports Facebook, Twitter, MySpace, Foursquare, LinkedIn, Flickr, YouTube, AIM, Gtalk and Yahoo Chat amongst others. It's available as a desktop application for Linux, as well as a browser app for Firefox and Chrome.
With the browser app you can easily share links, videos and other stuff you come across on the web with your friends on the configured social networks. If you don't use either of the supported browsers, there's the desktop version with a similar interface.
Tweet talk
TweetDeck, which is available as a desktop app and an Android app, goes a step further and can also be found in Chrome's webstore. It too supports a variety of social networks, including the most popular ones.
The biggest advantage with TweetDeck, though, is that you can register with the service, which saves you having to log in to all your networks from each device and gives you some added advantages, such as scheduling messages.
If you need to send dents to your Identica accounts from your Android device try Twitdroyd, Mustard or Seesmic. These clients seamlessly plug into other social networking services to enable you to share media or shorten URLs.
To find more apps that you can use from your web browser as well as your Android phone, head to Chrome's webstore and search for "Android". This will bring you a whole list of apps that you can use to sync all types of content from your desktop at home or work via a web browser, and when you're roaming with your phone.
Some of the useful ones are Springpad, a note-taking app; Read Later Fast, which saves web pages for offline reading; the IMO instant messenger; Android Push Contacts, which sends SMS messages from the browser to Android devices; and the Nimbits data logger, which can also export the recorded data to Google Docs.
Step-by-step: Be omnipresent with Yoono
01. Add a service
Yoono can currently be installed inside Google's Chrome and Mozilla's Firefox browsers. Once installed, start by adding your accounts on the popular networks it supports.
02. Fine-tune settings
After you've added all the accounts, you can tweak settings for a particular service. For example, like Google+ Circles, Yoono enables you to assemble your FB friends in groups to better manage updates.
03. Start sharing
Yoono makes it easier to share anything you come across on the internet with your friends using the Share button, which enables you to pick out videos or text from within other browser tabs.
Privacy and online data
Throughout this feature we've looked at various ways you can access and manage all types of data from all sorts of places, and keep it all in sync. Getting to the data is the easy bit. The real question is how you want to store it - offload it to a remote server or host it in your own cloud?
The first option is more convenient, especially if you don't want to faff about building your own server, and just want to start sharing. But hosting your own cloud server gives you more flexibility and control over who accesses your data and how.
The most important issue is security. Not everybody is willing to put all kinds of documents and passwords on to servers outside their jurisdiction. This is also why most of the services, be they for storing arbitrary documents or passwords or your online bank account, ensure privacy either by encrypting data or securing the channel through which it's transmitted.
Another important factor is cost. Many remote services are free with up to 2GB of storage, and offer additional storage at throwaway prices.
Plugging the gap
Despite the availability of the software, many users are deterred from hosting their own cloud server by the overheads that come with running it. This is where plug computers come in.
A plug computer is a small form factor computer that's meant to be used as an always-on server. It's got enough juice to run the server software and is stripped of all the exotic hardware you'll find on a normal computer, such as graphics cards or serial, parallel, PS/2 and VGA ports. This is also why plug computers consume a lot less power than traditional servers. Often they're enclosed in an AC power plug or AC adapter - hence the name.
The Tonido NAS software is available on top of a plug computer, and there's a version of the Amahi Home Server that can be installed on top of a plug server. Besides the SheevaPlug, it's been tested on several other plugs machines, including Ionics Plugs and Guru Plug.
Freedom fighters
Earlier this year, Eben Moglen, chairman of the Software Freedom Law Centre, announced the FreedomBox project to develop new personal server software for people who care about data privacy. As you've probably guessed, the FreedomBox software will run atop plug computers.
Moglen created the FreedomBox Foundation to develop the server, which will run "a free software operating system, with free applications designed to create and preserve personal privacy". The idea is to deploy the FreedomBox installations in a peer-to-peer fashion. Users will then use this network for a variety of purposes - for example, to keep encrypted copies of their backups on other computers in the network.
Users will also be able to send and receive encrypted emails, make VoIP calls that can't be intercepted and create their own alternative to social networking sites such as Facebook, Flickr and Twitter, without locking up their data.
FreedomBox will be based on Debian and many of its developers are from the Debian development community, including its lead developer Bdale Garbee, the former Debian project leader. The project was funded via the crowdfunding service Kickstarter, where it raised over $86,000.
Currently under development, the FreedomBox software won't cost anything and will be made up of several pieces of free software. The only cost will be that of the hardware - the plug computer server.
Moglen has been quoted in a New York Times article as saying that these plug computers will "get very cheap, very quick" coming down from the current $99 (about £62) to $29 (around £18).