As the year comes to a close, I like to reflect on the progress I’ve made and the lessons I’ve learned. In this blog post, I’m going to take a look at the servers that have played a crucial role in supporting my services over the past years. By analyzing their performance, reliability and cost, I hope to gain some valuable insights into how I can improve and optimize my infrastructure in the future, and perhaps give you readers some inspiration to start a home server of your own, with more knowledge of the pros and cons of each solution.
Editorial note: this post sucks I’ve posted this article when ChatGPT was still a new thing, and if you read through it, you’ll see how large parts look AI-generated, and in fact, are. Reading this now makes me cringe extremely hard. While the opinion, facts, recommendations and ideas in this article are mine, the style and wording, in large parts, aren’t. I was tempted to remove this post, but I’ve decided to keep it as a reminder of an error that I should never repeat again. No other article in this blog is affected.
In the beginning, there were Netlify and Heroku
In the year 2020, when I didn’t want to spend a penny on this hobby of mine, I deployed everything on Heroku and Netlify. I had to merge all my Telegram bots into one single Heroku dyno (application), which was necessary to fit into the free tier. It was a fun experience overall, which forced me to rethink how my bots worked in order to optimize them to work well with the free tier. It’s worth noting that Heroku is no longer free, but there are several alternatives available that offer free tiers, such as Replit, Google Cloud Platform and Oracle Cloud’s Always Free tier. If you’re just starting out with web development, these platforms can be a great way to get your feet wet without incurring in significant costs. Especially Netlify is a great solution to host content inside a high-performance content delivery network, which many developers use to share their websites to the world.
At the time I didn’t really have a domain of my own - I used Eu.Org to get a free subdomain. That’s a service I heavily recommended to this day, even if you’re outside the EU. Having a domain (or, in this case, subdomain) is essential for building a solid online identity. Stuff like Netlify offer free subdomains, but they’re tied to themselves. For example, I can get massivebox.netlify.app, but if one day I choose to migrate to another host, like codeberg.page or my own hardware, I can’t simply point to the new host from it without an HTTP redirect. On the other hand, Eu.Org provides full nameserver control, so the domain can point to whatever host you want it to. Domains of this type can also be used with email, to get a professional-looking address that isn’t tied to a specific host.
Then my old laptop
This photo shows a recreation of the original setup, and its only purpose is to show an approximate visual impact. Some cables are missing.
My next server was an Acer Aspire E1, which was an old laptop that I repurposed for use as a server. One of the major advantages of using old hardware as a home server is’s very cost-effective. Rather than purchasing new equipment, you can often use your old computer to set up a basic server. In the case of the Acer Aspire E1, it was a budget laptop that I no longer needed for personal use and was sitting on a shelf collecting dust, so it made sense to repurpose it. While it wasn’t a powerful machine by any means, it was more than sufficient for the tasks I needed it to perform.
Old laptops in general are a great solution for whoever is getting started with hosting at home. They consume much less than desktop machines of nearly same specs, and have the added bonuses of being quiet and easy to hide under your internet modem. Just make sure to detach the battery to prevent it from overloading.
One of the major benefits of running a bare-bones Linux server is the opportunity it provides to learn and gain hands-on experience with Linux and other open source technologies. Unlike PaaS solutions like Heroku or Replit, which abstract away many of the underlying details of the operating system and infrastructure, using Linux requires a deeper understanding of how everything fits together. This can be a great learning opportunity for anyone interested in becoming more proficient with Linux and open source software.
It was at this time that I started deploying some self-hosted applications for myself, my family and my friends. I started with Jellyfin, NextCloud, Vaultwarden and PiHole, which this server managed to handle very well.
Downgrading to the sketchiest hardware imaginable
This photo shows a recreation of the original setup, and its only purpose is to show an approximate visual impact. Some cables are missing.
After using the Aspire as a home server for a while, I started to feel that I wanted to “return to monke”. So I decided to downgrade to a single board computer (SBC) for a few reasons. First and foremost, the Acer’s cooling fan was becoming more and more noisy over time. Although it would have been easy just to replace it, I opted for getting another dedicated server and using the Aspire as a backup laptop. I also wanted to experience the world of SBCs for other reasons: they are typically based on Arm processors, which are commonly found in smartphones and other mobile devices. These processors are designed to be energy efficient and generate less heat, so they don’t require active cooling like traditional computers do, which makes them completely noiseless. While an SBC may not be as powerful as a traditional computer, it can still be sufficient for running most services and applications.
So the next server I used was a cheap TV box I purchased on Aliexpress for less than €25: the MXQ Pro 5G. I had originally intended to get a single board computer like the Raspberry Pi, but due to component shortages at the time, I would have ended up overpaying it. The MXQ looked like an interesting alternative, since it had basically all the Pi’s features in an all-in-one package that would end up costing a quarter of a legitimate Pi. Moreover, it ran a Linux distribution called Armbian, which is based on Debian. At the end of the day, these TV-boxes are nothing more than SBCs without the pin headers that run Android out of the box.
Yes, it was a very sketchy solution, but I was curious. And it did work: I was able to run most of my services just fine, but its performance was even worse than I expected, and I ended up turning off Matomo and others to free up resources. Despite this, the MXQ Pro 5G had a few notable strengths. Its form factor was compact and it was completely noiseless, which was highly appreciated by my parents. Because the case of the MXQ is mostly empty, I also bought a Raspberry Pi Pico and an E-Ink display and crafted myself a little status indicator display. It was lots of fun!
The MXQ Pro with its custom screen. This is part of an Instagram story I had posted to flex on my friends. “Io fierissimo” means “I’m so proud” in a light tone.
But yeah, despite being cute, the MXQ just didn’t cut it. Despite the performances being technically comparable to a Raspberry Pi, it felt much slower in everything, mostly due to terribly low storage, either internal or external via an SSD connected with a SATA-USB cable. Furthermore, it’s not a supported device by Armbian, and it’s unlikely to receive new kernel releases. I also quickly found out that if I accidentally broke the OS for any reason I wouldn’t likely be able to fix it. I can’t really recommend the MXQ Pro 5G, I’d recommend exploring SBCs like the ones offered by Pine64 to see what works best for your needs and budget. They will surely end up costing more, but believe me, the price difference is well worth it.
My current server: the P4
My current server, which I decided to call “P4”, is a custom-built machine with the following components:
-
Intel Xeon E5 2660 V3 CPU: This is a powerful processor that was originally designed for use in servers and other high-performance systems. While it is now considered old by modern standards, it is still capable of handling a wide range of tasks.
-
16 GB DDR4 RAM: This is a large amount of memory that ensures the server has plenty of resources to work with.
-
1TB HDD + 250GB SSD: This combination provides ample storage space and fast access to frequently used data. The 1TB HDD is a traditional hard drive that provides a large amount of storage, which I mostly use for media and my own cloud, while the 250GB SSD is a solid state drive that provides faster access to data.
-
Machinist E5 RS9 motherboard: This is a high-quality motherboard that provides stable and reliable performance. It is specifically designed to support the Intel Xeon E5 2660 V3 CPU.
The name P4 is just an homage to the Japanese Fusion band Casiopea P4, which I’m very fond of. It also happens to be the fourth solution to my hosting needs, so I’d say everything fits nicely.
I purchased some components in a bundle to save money and assembled the server myself. The CPU is used, while the motherboard is a new component that is made by a Chinese manufacturer. Many Chinese manufacturers are now making cheap motherboards that are compatible with older CPUs like the Intel Xeon E5 2660 V3, so it was a good opportunity to get a used CPU and a new motherboard for a good price. Machinist is one of the most reputable vendors in this space, and if you want to follow my route I recommend them over the cheaper alternatives. Since CPUs usually outlast motherboard by tens of years, I’m sure that having a used CPU won’t be a problem in the near future.
Overall, this server solution is much more expensive than my previous servers, and it is less energy efficient and very loud, even with good quality fans. So loud, in fact, that my parents forced me to run a cable to our basement and keep it there, next to the washing machine, which I believe explains why it’s placed on a random chair. While it is a great solution for people who need high performance, it does have its downsides. However, so far it has been very reliable and stable, even more so than I expected. When energy prices go down, this will become an even better machine. Despite its issues, I recommend a solution like this for anyone who wants performance for relatively cheap, especially for people who live in countries where electricity is inexpensive. You can also look at higher end SBCs or “mini PCs” depending on your requirements, if quietness and efficiency are a must.
Wrapping it up
In this article, we’ve taken a look at the history of my servers. From cloud-based platforms like Heroku and Netlify to home-based options like the P4, I’ve learned many things and I hope you learned something too.
As you can see, there are pros and cons to each type of server, and it’s important to carefully consider your needs before making a decision. Whether you’re looking for a budget-friendly option, a high-performance solution, or something in between, there’s a home server that can meet your needs. With a bit of research and planning, you can set up your own home server and start hosting your own services and applications in no time. Starting from a laptop or computer you already own is a great and free way to get familiar with all this, so it’s what I recommend to a beginner. Your interest will grow from there, and you’ll want to try more and more hardware. Have fun!
I hope you’ve found this article interesting! I wish you a happy new year full of joy and self-hosted services. You can discuss on my Matrix and Telegram groups, or you can contact me here.
Some images contain the following media:
- Heroku logo By ™/®Salesforce.com - Vectorised by Vulphere from https://www3.assets.heroku.com/assets/logo-purple-08fb38cebb99e3aac5202df018eb337c5be74d5214768c90a8198c97420e4201.svg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=104890551
- Netlify logo By Netlify - Own work using: https://www.netlify.com/press/, Public Domain, https://commons.wikimedia.org/w/index.php?curid=71645741