Ask any Linux enthusiast, and they’ll tell you how awesome an operating system Linux can be. (Well, except Bryan Lunduke, who will say it sucks before he says it’s awesome.) For the desktop user, the freedom from worry about most viruses is a big plus, and not spending $100 upgrading Windows is a big plus too.
As awesome as Linux is for desktop use, Linux (and BSD for that matter) truly shines as a server. While providing web-based services is one of those server-y things Linux does really well, Linux can do a lot more than host a blog about family outings.
If you’re looking to host your own services instead of paying for or relying on those in the cloud, running your own home server is one of the best ways to keep your files private.
Choosing the specific Linux distribution for your home server can be daunting in itself since there are so many strains to choose from. Most of the time, I just roll with Ubuntu and recommend that first-time users do the same. The reason is simple: Ubuntu Server is easy to administer, well documented, and has a pretty low learning curve, especially if you’ve ever used desktop Ubuntu. (See these instructions for installing Ubuntu Server.)
The next big thing you’ll have to worry about is what programs to run on the server. There is a huge amount of free and open-source software you can host yourself, but finding it can be tricky. Luckily, a GitHub user named Edward D. maintains a list of self-hosted software that you can run on a Linux server. The list has everything from blog software to CRM. It even features some awesome meta packages (which let you bulk-install a group of applications) like sovereign.
Indeed, sovereign is a good starting point for users who are looking to be digitally self-reliant. With a couple commands, sovereign will install an email server, a VPN service, nightly backups, a CalDAV and CardDAV server, and ownCloud, just to name a few.
Once you have an idea of what you want to host on your server, the next step is choosing the right hardware.
One of the most common ways to use Linux in a home server is to install the OS on an old desktop.
The hardware requirements for Windows have marched forward as time and Windows versions have progressed. While you might technically get Windows 10 to run on a PC that’s been sitting in the garage for five years, its performance might be less than ideal.
That old PC could be a nice host for Linux. On top of saving you some money, repurposing an old PC as a Linux server is good for the environment. Reusing the PC keeps e-waste out of landfills (you do know PCs shouldn’t go in the garbage bin, right?) and stretches the life of the heavy metals and precious and/or toxic materials that comprise many PC parts.
Raspberry Pi 3: $35 and up
There’s a reason people love the little Raspberry Pi: For 35 bucks you get a palm-sized computer that has networking, USB ports, and general-purpose pins to satisfy all of your tinkering needs. While the Pi is a great tinkerer’s toy, it’s also great as a low-power server.
The Raspberry Pi is powered via a Micro-USB connection and sips power compared to big desktop components. If you’re looking for a server to host just a couple of services to a small number of users (like you and your roommate), the Pi is a wonderful platform to start with.
The Pi doesn’t have any storage onboard, but if you plan on running a file or media server with it, you can always buy or reuse an external USB hard drive or a large USB stick.
NUCs and small PCs: $179 and up
Small PCs are often marketed as low-powered desktops or home-theater PCs, but they also make great servers. Intel’s Next Unit of Computing (NUC) models are well equipped for light- to medium-duty server use in a home.
Much more robust than their ARM-based Raspberry Pi counterparts, Intel’s NUCs will consume more power but be able to handle more computationally intensive tasks. Some NUC models will have room for a 2.5-inch SSD for onboard storage. Other models will force you to outsource bulk storage of big files to an external drive, not unlike the Pi.
If you prefer AMD to Intel, there are some other options as well, including Gigabyte’s Brix, which offers many of the same features as the NUC.
Network attached storage (NAS) appliances: $150 and up
If you’re worried you don’t have the technical chops to install and maintain your own Linux server, you can always go for a network attached storage (NAS) system. A NAS is basically a small Linux or BSD server with the primary function of hosting files. You can think of a NAS as your own extensible Google Drive or Dropbox.
Lots of companies offer NAS solutions in one form or another, but two of the big names are QNAP and Synology. Both companies offer many of the same features, but the web interfaces are different for each.
For small businesses that just need something to work, a medium-sized NAS can be a simple, plug-and-play solution. With a NAS, you generally don’t have to fight with drivers or settings during setup; everything can be accomplished using an easy-to-follow web interface.
While you can find diskless NAS devices for as little as $150, they will—naturally—come without any hard drives. Hard drives for NAS boxes tend to cost a little more than the typical desktop hard drive, since they are designed to be always-on, and to keep data safe for a long period of time.
Virtual private server (VPS): $5/month and up
Okay, so this isn’t a way to have a Linux server in the home. A virtual private server is exactly what it sounds like: a virtual machine instance in a server farm. “Private” refers to the fact that other VPS machines in the same server farm can’t steal resources or interact with your VPS. In effect, it’s like having your own little Linux box connected to a server farm somewhere.
VPS solutions can be great if you need to run a small blog or some other service that you’d rather not run from home. Unlike running a service on a home server, a VPS does not require you to open up ports on your router and fiddle with dynamic DNS.
Of the VPS providers out there, Digital Ocean offers some of the better deals for the individual or small business. Its servers start at $5 per month, and you can spin up more in seconds if you need them.
Besides being a great way to learn how Linux works, running your own server at home can allow you to break away from commercial services and take back control of your data.