I’ve never done any sort of home networking or self-hosting of any kind but thanks to Jellyfin and Mastodon I’ve become interested in the idea. As I understand it, physical servers (“bare metal” correct?) are PCs intended for data storing and hosting services instead of being used as a daily driver like my desktop. From my (admittedly) limited research, dedicated servers are a bit expensive. However, it seems that you can convert an old PC and even laptop into a server (examples here and here). But should I use that or are there dedicated servers at “affordable” price points. Since is this is first experience with self-hosting, which would be a better route to take?
I’ll tell you a secret: my cool looking 4u server case with 8 hot swappable drive bays actually just houses my last gaming rig. Know what’s going in there when I update my current rig?
This rig.
A couple years ago my in-laws were downsizing after retiring and they asked if I would possibly have any use for their ancient desktop PC (at least old enough to have shipped with Windows 7).
I installed Debian on it and it’s running Jellyfin, qBittorrent through Gluetun, Calibre-web, NextCloud, and Pi-Hole containers, with plenty of room to spare. I’ve also got some services running on Raspberry pis (back when they were cheap). And an external 4TB hard drive connected to it acting as a NAS. No hardware transcoding or 4K video on Jellyfin but that’s no big deal for me.
All that to say yes, you can absolutely self-host on repurposed hardware. Any old PC you’re looking at is no doubt newer than mine.
If you already have one, it’s a good place to start. However, power efficiency will be the biggest drawback. Power ain’t free, and in some places it is very expensive. I’d recommend picking up some cheap ThirdReality switches and using them to monitor power consumption in Home Assistant.
Generally speaking, yes. My home server is just a Pi.
Any normal computer can become a “server”, its all based on the software.
Most enterprise server hardware is expensive because its designed around demanding workloads where uptime and redundancy is important. For a goober wanting to start a Minecraft and Jellyfin server, any old PC will work.
For home labbers office PC’s is the best way to do it. I have two machines right now that are repurposed office machines. They usually work well as office machines generally focus on having a decent CPU and plenty of memory without wasting money on a high end GPU, and can be had used for very cheap (or even free if you make friends that work in IT). And unless you’re running a lot of game servers or want a 4k streaming box, even a mediocre PC from 2012 is powerful enough to do a lot of stuff on.Totally agree, I’ll add that I run jellyfin, the *arrs, an admittedly low throughout ripping/encoding setup, and a few other containers on a single optiplex micro 7060 and there’s a lot of room leftover. I very much appreciate the laptop processor in it because it usually sits idle for 16 hours a day.
It really depends on what you’re trying to do. At the end of the day, the foundational components are pretty standard across the board. All machines have a CPU, motherboard, storage mechanism, etc. Oftentimes those actual servers have a form factor better suited for rack mounting. They often have more powerful components.
But at the end of the day, the difference isn’t as striking as most people not aware of this stuff think.
I’d say considering this is your first experience, you should start with converting an old PC due to the lower price point, and then expand as needed. You’ll learn a lot and get a lot of experience from starting there.
I love the vibe in this thread/community. You all seem like real cool cats. I appreciate that.
It depends on what you are running, but at one point I had an Odroid N2+ with 8GB RAM running Home Assistant, mpd, Snap server, zwavejs, mympd, jellyfin, and Calibre, all in containers, controlling the house and providing music for the sound system, playing movies, and with no issues. It ran for 7 years. So you don’t need much; memory helps.
Oh - I take it back; after I put Jellyfin on it, it would struggle with transcoding. No GPU, old, weak CPU, whatever. But otherwise, it was fine.
At some point I realized I’d have to leave the computer with the house, because I have over 30 hardwired z-wave devices I’m not taking out if we sell, so I moved all of the services except Home Assistant and zwavejs to another computer.
My point is: old computers should be fine, assuming you’re not trying to run LLMs on them. Or going heavy video transcoding. Just for serving up some web applications? You don’t need much.
When talking about hardware, the physical computer itself, a “server” is commercial grade and designed to run under heavy loads for years on end with very high reliability. Error correcting RAM, redundant power supplies, room inside for huge processors, more airflow than a C-130 for cooling, etc.
On the software side, a “server” is just a computer that provides some service to users on a network. You very likely have one of those Wi-Fi router/ethernet switch things from the likes of Linksys or whatever, right? That is almost certainly acting as a DHCP server for you LAN, in that capacity it might handle kilobytes of data a day because dynamically assigning IP addresses on a household Wi-Fi network is not a very demanding task, so it’ll do it on a tiny little ARM processor with a few MB of RAM. It probably also has a web server, which is how the “go to its IP address in your browser and get to your router settings page” works. It’s serving a little website that most of the time gets absolutely zero traffic.
So, turning a desktop PC into a “server.” The question is, what services will it provide? Desktop PCs are pretty good at mostly low traffic with bursts of intense work, so if they’re going to sit still doing nothing while you’re at work all day, and then maybe handle some file storage or media transcoding during the evenings while you’re home, a PC will do that just fine, if you’re okay paying the power bill of having a computer up and running all the time.
If you’re hosting a website or a game server with a lot of active users around the clock, you might want to look into more professional hardware.
If you’re hosting a website or a game server with a lot of active users around the clock, you might want to look into more professional hardware.
Honestly, that’s going to be pretty far down the road. Use what you’ve got, and fix issues as you go. Professional hardware is rarely needed, but it is pretty cool.
Heck yeah. Not always the best for power efficiency though.
Old laptops also a great choice but I really recommend removing the battery first.
Why removing the battery? I was thinking that could be one good thing about using a laptop is that in a way it has its own UPS.
Because as a headless server it’s likely to sit hidden for a long time. This and the always being plugged in is not good for lithium-ion batteries. If/when it starts ballooning will you notice? It’s a fire risk.
UPSes use typically lead-acid batteries like a car.
I should have thought of that. Thanks! Ironically, I have a very old lead-acid UPS in the basement that I’ve been kind of afraid to plug in again after all this time.
You can typically replace the battery inside the UPS (and should every few years). Looking at $40-50USD for “official” replacements, less for questionable third party ones.
Yes, you can easily do it.
You want to look at 2 things: 1. Noise 2. Ratio of performance / power usage.
- Noise
When your PC runs 24/7 then it might be annoying to hear it’s noise sometimes. Real server cases are usually even much louder than former PC’s because they are built for super strong air flow inside.
Think carefully what you need. In my situation it is just one light wooden door away from my bed, so I wanted it impossible to hear. I optimized it so, and it ended up being so quiet that I cannot hear any fans, but I hear the clicking of the harddisks all the time. Well, I got used to that, mostly. For my next home server I want to build my own case that absolutely blocks this noise.
- Ratio of performance / power usage
People are frequently asking what if I turn this old Pentium etc. into a server?
Well, these old CPU’s have very low performance compared to new ones, but it might just be sufficient. But then you recognize that the old veterans burn 100 Watts for the same performance where a modern (low performance) CPU burns only 5 Watts, and now it will do that 24/7. Think about your yearly costs. Many times it turns out that buying a new one saves your money very easily.
I bought a used m920q for this reason, still working on it, I’m at the docker-compose phase
Those are beasts! My homelab has three of them in a Proxmox cluster. I love that for not a ton of extra money you can throw in a PCIe expansion slot and the power consumption for all three is less than my second hand Dell Tower server.
Do you have any good resources I can look at to see if a cluster is something I should look into?
Not really, but I can give you my reasons for doing so. Know that you’ll need some shared storage (NFS, CIFS, etc) to take full advantage of the cluster.
- Zero downtime for patching. Taking systems offline to update Proxmox sucks, especially if the upgrade fails for some reason. A cluster means I can evacuate one host, upgrade it, and move on to the next with no downtime for the hosted VMs.
- Critical service resiliency. I have a couple of critical systems in my home lab that, if they unexpectedly go down, will make for a very bad day. For instance, my entire home network (and lab) is configured to use a PowerDNS cluster for DNS. I can put the master PowerDNS server on one host and the slave on a second host - if I have a hardware failure, I won’t lose DNS. I have a similar setup for my Kubernetes cluster’s worker nodes.
- Experimentation. A cluster gives me a larger shared pool of CPU/Memory than my single host could offer. This means I can spin up new VMs, LXC containers, etc and just play with new software and services. Heck that’s how I got started with my Kubernetes cluster - I had some spare capacity so I found a blog post that talked about Kubes on LXC containers and I spun it up.
I hope that helps give some reasons for doing a cluster, and apologies for not replying immediately. I’m happy to share more about my homelab/answer other questions about my setup.
Absolutely yes. It’s better to use an old PC for a home server, because upgrades are cheaper, parts are easier to find, troubleshooting is generally easier, they’re usually more energy efficient than an older dedicated server, and you’re saving an old pc from becoming e-waste.
That being said, what you want to run on it determines how old/cheap of a PC could work for you.
Jellyfin works best when you can do hardware encoding, and these days that means throwing an ARC A310 in there and calling it a day. If you have a new enough processor, you don’t even need the graphics card.
Mastodon is pretty disk heavy, but if you’ve got a nice hard disk to put the Minio server on and an SSD for the db, you’re golden. That’s how I run https://port87.social/. It’s running on an old 6th gen Intel i7. The PC I built in 2015 (with a few upgrades).
CPU intensive servers like Minecraft are where you start to run into problems with older hardware. If it’s just you on there, a 10 year old CPU is fine, but if you’ve got a few friends, the server may start to struggle to keep up. I had to move my server off that same system I talked about above, because Minecraft was pegging the CPU a lot. But a 5 year old CPU would be fine for that. (Assuming that the 10 year old and 5 year old CPUs were both top tier CPUs when they were new. Like i7, i9, Ryzen 7, Ryzen 9. A five year old i3 would still struggle.)
Basically unless you’re trying to run AI models on it, cheap hardware is fantastic for personal servers.
CPU intensive servers like Minecraft are where you start to run into problems with older hardware. If it’s just you on there, a 10 year old CPU is fine, but if you’ve got a few friends, the server may start to struggle to keep up.
Not sure how recently you ran this, or what all your were running, but in the past couple of years Paper has hit some pretty major milestones in unlocking threaded processing. Barring some sort of spammy 0-tick redstone nonsense or over the top plugins, I’d wager a Raspberry Pi 4 could handle up to about 5 or 6 friends without seeing any TPS dips. Its really remarkable how far they’ve pushed performance recently.
That’s really cool! I just run the vanilla server, but maybe I should check out Paper. Can it import worlds from vanilla?
Yes, it absolutely can, it’s super easy! Just swap your Minecraft .jar with Paper and it’ll do the rest. It’s a tiny bit harder to go back, but only marginally.
Out of the box, aside from huge performance benefits, Paper is virtually indistinguishable from vanilla, but it also opens the door to a whole world of easy-to-use server-side plugins.
Edit: (you should still make a backup before swapping, just in case)
Wondering if you have and insight on power usage with the a310 in the system while idling. I built a sub 25w server and don’t want to mess that up.
Sorry, but I don’t know. I use an A380 in my system. I got it before the A310 was available.
How does the a380 impact your power consumption? If you have ever measured it.
I’d imagine not very much. I don’t know how to measure just the GPU. It doesn’t have any desktop installed, so it’s only ever rendering a console. It can transcode tons of 1080p streams at once, so even a transcode probably doesn’t draw much power. The CPU is the hungriest part, and that’s mostly idling too.
Thank you!
There are a lot of ways to go. My own isn’t particularly efficient, but it’s an old rack mount server. Everything is built like a tank. It’s robust as hell, and yet everything was well used and cheap. Probably not a good solution if you live somewhere with expensive power, but I don’t.
You could ask the question for video gaming. Can a used computer do the job? Yes, but you may not be able to play cutting edge / demanding games if your computer lacks the appropriate hardware. It really depends what kind of things you want to do, for choosing hardware that’s powerful enough.
Jellyfin? You need to consider if you need transcoding. Transcode or not makes quite a difference on the hardware needs.