Something I see a lot of around the Internet are people who think that you need to purchase a big (often rack-mounted) "server" in order to host things like websites, email, game servers, and more (exhibit a). Quite often, they turn to ebay to purchase used enterprise rack mounted servers too.
I want to take a moment here to write up my thoughts here on why that is almost never the correct approach for a home user to take to host such applications at home, and what the (much better) alternatives are to serve as a reference post I can direct people to who need educating about this important issue.
What is a "server"?
A server can mean 2 things: a physical computer whose primary role is to act as a server, and server applications, which serve content to other users elsewhere - be it phones, laptops, desktops, etc.
A lot of people new to the field don't realise it, but any computer can take on the role of a server - you don't need any fancy hardware. The things that a computer does is defined by the software it runs - not the hardware that it is built from.
Does a server need a graphics card (GPU)?
No. It really doesn't. It's extremely unlikely that for a general purpose server you would need a GPU. Another related myth here is that you need a GPU in your server if you're running a game server. This is also false. Most of the time a server is going to be running headlessly (i.e. without a monitor) - so it really doesn't need a GPU in order to function effectively.
The following tasks however may require a GPU:
- Serious Machine Learning / Artificial Intelligence workloads
- 3D Rendering (e.g. Blender)
- Live video streaming (video transcoding does not always utilise the GPU, as far as I can tell - make sure you check the documentation for your video editing software before buying any hardware)
Web servers, game servers, email servers, and other application servers do not use and cannot make use of a GPU. Programs need to be specially designed to support GPUs.
I need to purchase a license for Windows Server. Windows 10 isn't enough.
This is false. If you prefer Windows, then a regular old Windows 10 machine will be just fine for most home server use-cases. Windows Server provides additional features for enterprise that you are unlikely to need.
Personally, I recommend running a distribution of Linux though such as Ubuntu Server.
The problems with used hardware
Of particular frustration is the purchasing of old used (often rack mountable) servers from eBay and other auction sites. The low prices might be attractive, but such servers will nearly always have a number of issues:
- The CPU and other components will frequently be 10+ years old, and draw lots of electricity
- The fans will be very loud - sounding like a jet is taking off inside your house
- They often don't come with hard drives, and often have custom drive bays that require purchasing expensive drives to fill
Awkward issues to be sure! Particularly of note here is the electricity problem. Very old devices draw orders of magnitude more power than newer ones - leading to a big electricity bill. It will practically always be cheaper to purchase a newer more expensive machine - it'll pay for itself in dramatically lower electricity bills.
What are the alternatives?
Many far more suitable alternatives exist. They fall into 2 categories:
- Renting from a hosting company
- Buying a physical device
I'll be talking through both of these options below.
Renting from a hosting company
If you'd rather not have any hardware of your own locally, you can always rent a server from a hosting company. These come in 1 flavours:
- Virtual Private Servers (VPS): A virtual machine running on the hosting company's infrastructure. Often easier to scale to multiple machines.
- Dedicated servers: Bare-metal hardware running in a hosting company's datacentre somewhere. Useful if you've outgrown a VPS.
Things to watch out for when choosing one include:
- How can you get support if you have an issue?
- What network speeds are provided? Are there any data caps?
- How much hard drive space do they come with? You often can't get any additional hard drive space once you've bought it without switching to a new host.
- How many CPU cores does it have (or, if you want to run a game server, what's the clock speed)?
- How much RAM does it have?
- How much is it per month?
Buying a physical device
If you'd rather buy a physical device (beware that email servers cannot be effectively hosted on a residential Internet connection), then I can recommend either looking into one of these 2:
- An Intel NUC or other Mini PC in the same form factor
- A Raspberry Pi (or, for more advanced users, I've heard good things about a Rock Pi, but haven't tried it myself)
Both options are quiet, reasonably priced, and will draw orders of magnitude less power than a big rack mounted server.
A notable caveat here is that if you intend to run a game server, you'll want to check the CPU architecture it runs on, as it may not be compatible with the Raspberry Pi (which has an ARM chip built it - which can be either arm64 or armv7l - I use the official Debian CPU architecture codes here to avoid ambiguity).
Other alternatives here include old laptops and desktops you already have lying around at home. Make sure they aren't too old though, because otherwise you'll run afoul of point #1 in my list of problems there above.
In this post, I've busted some common myths about serves. I've also taken a quick look some appropriate hardware that you can buy or rent to use as a server.
If you're in the market for a server, don't be fooled by low prices for used physical servers. Rather, either rent one from a hosting company, or buy a Mini PC or Raspberry Pi instead. It'll run quieter and use less power too.
Other common questions I see are how to get started with running various different applications on a server. This is out of scope of this article, but there are plenty of tutorials out there on how to do this.
Often you'll need some basic Linux terminal skills to follow along though - I've written a blog post about how you can get started with the terminal already. I also on occasion post tutorials here on this blog on how to setup various applications - these are usually tagged with
Other sites have excellent tutorials on to setup all manner of different applications - I'll leave a bunch of links at the end of this post.
If this this post has helped demystify servers for you, please consider sharing it with others to clear up their misconceptions too.
Sources and Further Reading
- DigitalOcean community tutorials (purchasing from DigitalOcean is not required)
- How to install Ubuntu Server
- Advanced users only (solid experience with the Linux Terminal and networking required): Ars Technica Taking Email Back series: 1, 2, 3, and finally 4
- NGINX vs. Apache: Our View of a Decade-Old Question
- How to secure a Linux server
- Freeside resource list