Run your own cloud server at home[BODY]
Sending your data to the cloud is currently all the rage, but what can you do if you aren’t comfortable having your personal and private information stored in the cloud, but want to enjoy the benefits using the cloud provides? Fortunately, handing over your data and entrusting it to a multi-national company to do whatever they like with it, is not the only option.
Fighting back against the abuse of your private information has turned into a trend called self-hosting. Many of the services typically used in the cloud, such as music and video streaming, file synchronisation, photo libraries and more, can be run locally, on your own server either at home or on a paid web host. Regardless of where you run self-hosted software, it’s your server and you set the rules on how the data on it is used, not a faceless Silicon Valley megacorp.
[WHAT CAN I SELF-HOST?]
An easier question would be what can’t you host! There are literally hundreds of software packages designed to do all manner of tasks. These are just a couple of our favourites.
[PLEX – plex.tv]
Probably the self-hosted package most people may be familiar with is Plex. When loaded up with your favourite TV shows and movies (legally obtained, of course), it’s basically your own personally curated Netflix with no monthly fee.
Your video files are automatically organised, with full metadata. Sync media from your server to your tablet or smartphone to watch offline, or stream it over 4G direct to your device. Many smart TVs have a Plex client built-in, or you can grab a cheap Android set-top box and install the Plex app on it. Plex probably deserves an article of its own, but suffice to say, if you’re into collecting media, give Plex a shot.
[NEXTCLOUD – nextcloud.com]
Dropbox, Google Drive, OneDrive and countless other file syncing services are a cornerstone of many people’s digital lives. Nextcloud is essentially an open-source, free, self-hosted version of those file syncing services with additional calendar and contact and synchronisation.
Nextcloud has official smartphone and tablet apps, as well as full featured browser access so you can access your gear from any computer. Nextcloud is secure thanks to end-to-end and at rest encryption, together with two factor authentication built-in. You can even invite friends and family to setup accounts on Nextcloud, so they can enjoy a self-hosted solution for their data too.
[MOPIDY – mopidy.com]
Apple Music, Google Play Music and Spotify are all great, but often there are gaps in their libraries and that gap is often one of your favourite albums! Mopidy is basically Spotify, but with your files, available anywhere, any time. It’s based on the MPD standard, which means you aren’t locked in to using a specific client or web interface.
Some excellent MPD clients include Ympd, a clean and fast web GUI to interact with your MPD server from any device. MPDluxe for iOS and MALP for Android are perfect for your smartphone. A healthy plug-in ecosystem for Mopidy exists, with extensions that allow for scrobbling played tracks to Last.fm and enabling DLNA UPnP so that the vast array of device that support DLNA (e.g: PlayStations, many Internet connected Blu-Ray/DVD players & home theatre amplifiers) can access your music server.
[BITWARDEN – bitwarden.com]
A password manager is one of the last things you want to put on the cloud. All your passwords, just vulnerable to being hacked, in someone else’s hands? No thanks! Bitwarden lets you run your own password manager server with end-to-end AES-256 bit encryption, salted hashing, and PBKDF2 SHA-256 password storage. For added security, there’s two factor authentication via a YubiKey, FIDO, U2F, or Duo and a trusted SSL certificated provided by Let’s Encrypt.
Access your passwords with Android and iOS apps, as well as plugins for all the major web browsers on all platforms. Installation of Bitwarden is easy, as there’s a simple Docker image you can install. This pre-configured instance makes sure everything on your server is locked down correctly.
[PI HOLE – pi-hole.net]
Ad blockers installed via a browser plug-in do a fine job removing the ad from your view, but they still load the ad before deciding not to display it. Pi Hole blocks the ad before it loads, which saves bandwidth and makes pages render incredibly quick, as you simply aren’t loading up all those ads.
The best thing about Pi Hole is that it works network wide, so all the devices on your network including tablets and smartphones are protected from slow and malicious online advertising, with no extra software required. If Pi Hole gets a bit too overzealous in blocking an ad, its web interface allows you to whitelist domains. Despite the Pi in its name, Pi Hole will run on any Linux server, not just the Raspberry Pi.
HOW DO I INSTALL THESE APPS?
Linux is the operating system of choice for most self-hosters, as it’s free, designed to be administered remotely and almost all the self-hosted apps are made primarily for use on Linux, not Windows. Most self-hosted apps can be installed in two or three simple commands, but check the specific app’s documentation on how to install it and any pre-requisite apps (e.g: Python, Node.js) needed.
Docker containers are an increasingly popular way to run self-hosted apps thanks to community maintained Docker image repositories. These are self-contained instances of an app that are insulated from the rest of the operating system and can be managed independently from each other. LinuxServer.io is an excellent repository of pre-configured and secured Docker containers.
The easiest way to get started with self-hosting is to use a dedicated operating system such as Yunohost, Sandstorm or UBOS. Instead of installing a flavor of Linux or Windows, then installing your apps on top and managing them independently, these dedicated operating systems have popular self-hosted apps pre-installed and configured, all you need to do is enable them. They’re both excellent set and forget systems that have healthy communities regularly updating the selection of self-hosted apps.
This isn’t a guide on installing and operating Linux, so if you’re new to Linux, maybe stick with Yuonohost, Sandstorm or UBOS at first. Even those who are experienced with Linux may just prefer the ease of clicking a button to install their self-hosted apps instead of tweaking every detail themselves. That said, self-hosting is a practical and hands-on way to learn Linux if you’re keen!
WHERE SHOULD I HOST THEM?
There’s two places you can run your server: at home or on a webhost. If you plan on running self-hosted apps at home, all you need is a spare computer to leave on 24/7 and that’s your server. Old laptops work great as their battery acts as a built-in UPS so service isn’t disrupted when the power goes out.
Regardless of what computer you use, fancy hardware isn’t required. You don’t even need a monitor, keyboard or mouse once your operating system is installed. Shove it in a corner, hook it up to your router via an Ethernet cable and access it remotely via SSH or remote desktop from your workstation if you need to tinker with it. To access the server from outside your home network, just punch a hole in your firewall.
Despite its diminutive size, a Raspberry Pi is more than enough computational power for self-hosted apps, making it an excellent solution for running a home server. A Raspbery Pi is small so it won’t take up space at home, cheap at under $60 and has extremely low power consumption, using barely a few cents a day in electricity. Many, but not all self-hosted apps contain an “ARM” (the type of CPU the Raspberry Pi uses) version suitable for the Raspberry Pi.
If your internet connection at home is slow, or you just don’t want or have space for another computer at home, there’s a plethora of web hosts that offer fast and cheap servers for a few bucks a month. Companies like Linode, Vultr and Digital Ocean offer VPS (virtual private servers) where you install your choice of operating system and then your selection of apps. They work just like a server at home, but they’re in a data centre full of bandwidth and on super reliable machines you can access anywhere in the world.
The downside of using a web host is that you’re trusting someone to host the server for you and there’s a never ending monthly cost attached. Stop paying and your server stops. Utilising full disk and end-to-end transport encryption (i.e: LUKS & SSL) mitigates most risk factors and unless you’re truly paranoid, a web host is a healthy alternative to running a physical server at home.
If you like the sound of this self-hosting stuff, there’s an active Reddit community at /r/selfhosted, which goes hand in hand with /r/homelab if you like to run your server locally instead of on a rented VPS in a datacentre. For more inspiration on the types of software packages you can self-host, there’s a gigantic community generated list of awesome self-hosted software available at https://github.com/Kickball/awesome-selfhosted – happy self-hosting!