What are the minimum or recommended requirements for a personal home server?
I want to set up a home server and take advantage of everything it can offer, specialty privacy.
Raspberry PI, no matter the version, are all quite expensive here in Brazil, so that's off the table. I'll go for a regular desktop. But the the requirements for a server that "does it all" remains a mystery to me.
That's the thing, when I buy new devices, my old ones usually go to my parents or for donation. So I have no old tech laying around, sadly. I'll have to buy, that's the reason for the post.
Anything that does the job is good enough. At its core a server is just a regular PC with a dedicated purpose and software. Sure, there are specialized hardware better suitable and purpose built, but it's not a requirement.
I for one prefer 19" rackmount stuff with disk bays in the front, but that's more of a convenience than anything.
UPS is nice, but it'll work without it.
I've had to deal with the Brazilian computer market and how it's ridiculously overpriced due to import fees, so in your situation I'd just get any hand-me-down computer. Servers generally don't require much unless you're doing something special or intensive.
Get your hands on whatever you can find for free or dirt cheap (laptop or desktop doesn'tmatter), install linux, and you have a basic setup that you can work with. If your use case requires more, then that's something you can accommodate in the next iteration of your server.
Almost all of my gear is bought used: switches, server, even memory. My main server is an old Dell C6100 blade server I got for $250. My disk array is a 12-bay SAN that I found for $50 and took a chance on being able to get it working. It’s power hungry but it’s got redundant everything and I have spare parts on the shelf next to it.
I’ve been branching into ARM servers a little and right now I’ve got an RK3588 board with 32G of RAM. That’s new (and expensive for me) but I got a fibre channel array for $20 that I’m going to try to make work with it. $8 FC HBA and a $12 cable along with a $30 m2-to-PCIe adapter intended for eGPUs. I’m not going for speed here, but used data centre equipment is nice and some of it is dirt cheap because it’s too slow for “real” work.
You might check if a simple CPU upgrade would get you there. I previously ran some 2005 Poweredge servers that came with a Pentium D processor, and it cost me something like $8 from ebay to upgrade to a Xeon and start running KVM.
Find out if there are any corporate off-lease machines being sold in your area. USFF machines are frequently used as mini desktops or point of sale computers then sold off for peanuts when warranties are done. Especially look at i3-8xxx generation, as they don’t support windows 11 fully.
Any corporate fleet machines, really. Corporate C-suite executives always demand the best laptops on the market… They also demand the newest laptops on the market. Because they can’t be seen with a worse laptop than the graphic artists or the programmers. This means there’s always fresh stock of last year’s corporate laptop hitting the used market. And they’re almost always gently used, because they just sat docked on some executive’s desk for a year, and were only used to answer emails.
Those $2000 laptops often get dropped on eBay for like $250, because the random Accounting person who has to auction them off doesn’t really care how much they sell for; They’re just checking a “was sold to recoup costs” checkbox.
depends on what you want to host. a lemmy or pleroma instance could run on an old laptop -- that's often where people start. a small minecraft server too. email can be a bit more resource intensive, but it's not that bad. mastodon can be a pain in the ass. peertube's main bottleneck tends to be upstream bandwidth. jellyfin doesn't require too much power, but if you want to transcode a "decent" GPU is preferable. i threw my old 1650 in there and it works fine for a stream or two.
EDIT: I meant QSV Gen 7, which would be intel Gen 11. Kaby Lake and up can still handle HEVC in hardware but they have to use software as well for 4K.
worth mentioning that any intel cpu with an iGPU from generation 7 (kaby lake) and up can handle 4k hevc transcode in hardware. i just upgraded my plex box to an i7 8700K and it works quite well. an old office workstation with like a 9th or 11th gen intel cpu would probably rip through transcodes.
i've got an 8350k sitting around as an email server, might be time for some migrations! tho hwenc tends to be worse than sw (nvenc certainly is, but the performance makes up for it) so i might just keep it as is for now...
As long as it's capable of booting into Linux, then you can start building a homelab...
Initially I had a 2-bay Synology NAS, and a Raspberry Pi 3B... It was very modest, but enough to stream media to my TV and run a bunch of different stuff in docker containers.
In my house, computer hardware is handed down. I buy something to upgrade my desktop, and whatever falls off that machine is handed down to my wife or my daughter's machines, then finally it's handed down to the server.
At some point my old Core i7-920 ended up in the server. This was plenty to upgrade the server to running Kubernetes with even more stuff, and even software transcoding some media for streaming. Running BTRFS gave me the flexibility to add various used disks over time.
At some point the CPU went bad, so I bought an upgrade for my desktop, and handed my old CPU donown the can, which released an Intel Core i5-2400F for the server. At this point storage and memory started to become the main limiting factor, so I added a PCI SAS card in IT mode to add more disks.
As this point my wife needed a faster CPU, so I bought a newer used CPU for her, and her old Intel Core i7-3770 was handed down to the server. That gave quite a boost in raw CPU power.
I ended up with a spare Intel Core i5-7600 because the first motherboard I bought for my wife was dead, so I looked up and found that for very cheap I could buy a motherboard to match, so I upgraded the server which opened up proper hardware transcoding.
I have since added 2 Intel NUCs to have a highly available control plane for my cluster.
This is where my server is at right now, and it's way beyond sufficient for the media streaming, photo library, various game servers, a lot of self-hosted smart home stuff, and all sorts of other random bits and pieces I want to run.
My suggestion would be to start out by finding the cheapest possible option, and then learn what your needs are.
What do you want your server to do? What software do you want to run? What hardware do you want to connect to it? All of this will evolve as you start using your server more and more, and you will learn what you need to buy to achieve what you want to.
How complex is migrating the whole thing for a the new setup when upgrading? The best I can get with my current budget probably resembles the "quality" of your second server(first upgrade).
While on your firstly upgraded server, were there limitations to any of your self-hosting desires? Things that were only possible on your following upgrade? That's my main concern. I'm probably over thinking things, it will be my first home server, I'll probably stick the simple stuff at first.
Right now I want to host movies, photos, automatic backups, files in general. Also use it for the smart home that I'm slowly putting together, basic stuff... for starters.
The only true "roadblock" I have experienced was when running on the raspberry pi, where the CPU was too slow to do any transcoding at all, and the memory was too small and unupgradable to be able to run much at the same time.
As soon as I had migrated to a proper desktop (the i7-920) I could run basically everything I would regularly want. And from then on it was a piece of cake upgrading. Shut the machine down, unplug, swap the parts, plug in, turn on. Linux has happily booted up with no trouble with the new hardware.
Since my first server was a classic bios, and the later machines was UEFI, then that step required a reinstall... But after the reinstall, I actually just copied all the contents of the root partition over, and it just worked.
The main limiting factors for me has been the amount of memory, the amount of SATA connectors for disks, and whether the hardware supported hardware transcoding.
For memory, ensure the motherboard has 4 sockets for memory, that makes it easy to start out with a bit of memory and upgrade later. For example you could start out with 2x 4GB sticks for a total of 8GB, and then later when you feel like you need more, you buy 2x 8GB sticks. Now you have a total of 24 GB.
For SATA ports, ensure the motherboard has enough ports for your needs, and I would also strongly recommend looking for a motherboard with at least 2 PCIe 16x slots, as that will allow you too add many more SATA or SAS ports via a SAS card.
Hardware encoding is far from a must. It's only really necessary if you have a lot of media in unsupported formats by the client devices. 95% of my library is h.264 in 1080p, which is supported on pretty much everything, so it will play directly and not require any transcoding. Most 1080p media is encoded in h.264, so it's usually a non-issue. 4k media however often come in HEVC (h.265), which many devices do not support. These files will require transcoding to be playable on devices that do not support it, but a CPU can still transcode it using "software transcoding", it's just much slower and less responsive. So I would consider it a nice convenience, but definitely not a must, and it depends entirely on the encoding of the media library.
EDIT: Oh, I just remembered... Beware of non-standard hardware. For example motherboards from Dell and IBM/Lenovo. These often come with non-standard fan mounts and headers, which means you can't replace the fans. They also often have non-standard power supplies, in non-standard form factors, which means that if the power supply dies, it's nearly impossibly to replace, and when you upgrade your motherboard you are likely forced to replace the power supply as well, and since the size of the power supply isn't standard, the new power supply will not fix in the case... Many of their motherboards also have non-standard mounts for the motherboards, which means that you are forced to replace the case when upgrading the motherboard... You can often find companies selling their old workstations for dirt-cheap, which can be a great way to get started, but often these workstations are so non-standard that you practically can't upgrade them... Often the only standard components in these are harddrives, SSDs, optical disc drives, memory, and any installed PCIe cards.
Right now I want to host movies, photos, automatic backups, files in general. Also use it for the smart home that I'm slowly putting together, basic stuff... for starters.
Someone mentioned that if I want to host 4k content I should go for a 7th gen Intel CPU or newer for HVAC support, something I didn't know, but that showcases exactly the sort of restrictions that I had in mind when I submitted this post.
Sorry it took me a while to respond, didn't expect to have this many responses.
So yes and no on that recommendation. If you are just hosting content for local consumption, transcoding is unnecessary since you have the network bandwidth to just throw the data directly to whatever is playing it. So weaker hardware is perfectly fine. If you are doing lots of concurrent streams or there is network access outside the house, the limited bandwidth can become an issue so transcoding suddenly matters and more powerful hardware comes into play.
I have used many ARM SBCs and a few low-power Intel boards like my current N100 and they’ve all been fine. While I generally dislike Intel their quicksync is very useful in media server configurations. If you are going to be doing a lot of live transcodes, I would consider throwing an ARC GPU in there and having jellyfin utilize the transcode capabilities of the Intel GPU instead of the CPU as it can handle more simultaneous streams. Beware the xe driver as there are issues with it in certain configurations. Same with HuC/GuC. The older standard driver is more likely to just work. Jellyfin and the archlinux wiki have great documentation on this.
NVIDIA used to be top tier here but their transcode tech is pretty old by this point and the quality, while acceptable, isn’t the best. Intel beats them. AMD, generally a preference for me, has a terrible media transcoder. Easily the worst quality of all of them. For raw compute and pushing pixels, AMD all the way but for transcode I would pass.
So to summarize: cheap out if it’s just local access. Transcode is pretty much unneeded. If it’s outside the home and/or had many streams at the same time, Intel for the GPU and AMD for the CPU.
These are a good alternative to RPis. Just be aware some of these are sort of haphazardly assembled so they might have cooling issues or bad power supplies.
When I started my media server in 2020 I used e-waste from my building. Had an i7 3770, 16gb ddr3 ram and an rx460 graphics card. I ran jellyfin, ultrasonic and audiobookshelf for 10-15 people with no problem on this hardware. Anything made within the last decade should provide a good starting point for you.
Depends on what you want the server to do. A Minecraft server and a Pihole server have vastly different requirements. As a general rule, any old laptop or desktop will do, think on requirements for your grandma and that should cover most (except gaming servers) needs.
Keep an eye out for people trashing perfectly good desktop machines because Windows 10 is being retired.
If you want a server that "does it all" then you would need to get the most decked-out top of the line server available... Obviously that is unrealistic, so as others have mentioned, knowing WHAT you want to run is required to even begin to make a guess at what you will need.
Meanwhile here's what I suggest -- Grab any desktop machine you can find to get yourself started. Load up an OS, and start adding services. Maybe you want to run a personal web server, a file server, or something more extensive like Nextcloud? Get those things installed, and see how it runs. At some point you will start seeing performance issues, and this tells you when it's time to upgrade to something with more capability. You may simply need more memory or a better CPU, in which case you can get the parts, or you may need to really step up to something with dual-CPU or internal RAID. You might also consider splitting services between multiple desktop machines, for instance having one dedicated NAS and another running Nextcloud. Your personal setup will dictate what works best for you, but the best way to learn these things is to just dive in with whatever hardware you can get ahold of (especially when it's free), and use that as your baseline for any upgrades.
This. Be on the lookout for company grade PCs, like from Dell, Lenovo or Fujitsu, they come in small form factors, offer decent upgradability and are low/on power consumption and noise (most of the time)
I highly recommend you try proxmox to get the most potential out of you system. Basically can run many services and vm with little overhead, dynamically sharing the specs.
Now about those specs… what everybody else said really but heres some pointers:
You don't need a big dedicated gpu unless your doing something that explicitly demands it. They are tricky to setup with virtual machines also.
If you plan on running a minecraft server i recommend at least 8gb ram.
Most will probably run fine on 4.
You can probably run quite a few things on 8gb but ram is cheap and its nice to have some extra room.
For cpu, the more things you do the
More sense it makes to have more cores. If you plan on buying then amd ryzen x y z is you best option where.
X is the number you want higher
Y is a number you should not care about as much
Z is potentialy the letter “G” for graphics, they are often more expensive. Get them anyway because now you dont need a dedicated gpu (and even if you already own a gpu. Trust me you will thank me if that one ever has issues)
If you really want me to draw you something decent up that will give you plenty of freedom to experiment.
Ryzen 7 … G, 32gb ram. Small ssd for os. xTB of performence HDD ideally configured as some raid in proxmox.
It still cannot be said often enough that a (well cared for) second hand unlabeled laptop running ubuntu is all what most people need when they start pondering about home servers.
I live in Brazil too and bought a R$120 old HP computer running Windows XP on MercadoLivre. Works decently enough for a Minecraft server after an upgrade (4 to 8GB of RAM). Old computers are great for price and they're good if you can upgrade them.
For general purposes, get something better than what I bought since it is not the fastest (even though it runs the Minecraft server software alright, it still lags). Maybe upgrading with an SSD would help performance.
The one you already have and/or if a raspberry pi 2 (all) can do it…. So can you. It’s not a game, you don’t need a RTX 9090Ti Super Omega Beta Pizza to run it.
If the size and low power consumption of the Pi are what appeal to you, you can try a getting a used thin client. Lots of suggestions and specs here: http://parkytowers.me.uk/
As everyone have said, it depends on what you want to have in your server. I started with an old lenovo I bought in mercado livre for 200 BRL. It was a DDR2 PC with 4Gb ram. I bought an ssd and installed Debian. Used for years. After that I tried to build a DDR3 PC. Made it with 800 BRL and it's decent to run my docker containers like an arr stack, nextcloud, VPN, reverse proxy and vaultwarden.
For Linux: Anything Intel 4xxx is fine, later is better obviously. 4GB RAM is OK for one family, 8GB gives enough headroom to host NextCloud for a small office. SSD for operating system makes it snappy as fuck at the terminal but aren't mandatory, slow drives for storage are fine.
The minimum spec is whatever e-waste you can find that still powers on.
My home server has an i3-4160, 10 gigabytes of mis-matched RAM, a ten-year-old 240 GB SSD with 36000 hours on it, and three 1 TB hard drives in a RAID5 array each with ~25000 power-on hours. It runs Proxmox on the metal with a virtualized OPNsense, Nextcloud, and Jellyfin server (plus smaller services). Jank levels are high, but not fatal, and it was mostly free.
Gotta see some evidence on that claim. Older stuff is more power hungry no doubt about it, but especially old data centre equipment is waaay more reliable and built with some very nice creature comforts.
Dell, HP, Lenovo all make a ton of generic office PCs that are good for a home server, and you can find older models for under $40 in the US so hopefully they're also cheap in Brazil.
This also shouldn't be your default option. Your default should be whatever you have laying around, and a lot of people have a Raspberry Pi sitting idle, hence why people use them.
What specs
That depends on what you want to do with it.
For example, if you want to host a video server, then you'll want something that can handle transcoding. Check the Jellyfin docs for details, which recommends an N100 or better.
List all the things you need and want, and then look up what the requirements are. Basic file hosting is pretty light, so you really don't need much (hence the Raspberry Pi rec).
I personally use an old PC with the following specs:
Ryzen 1700
16GB RAM
GTX 750 Ti GPU
2 8TB HDDs (bought for the server)
1 SSD for boot (128 GB, just needs to store the OS)
This is way overkill for what I need, but I had it laying around. You could even start with a laptop, you'll just have limited storage (can get a USB emclosure of you want).
If you don't have something, maybe a mini PC would work (minisforum, beelink, etc). Or maybe it doesn't. I don't know what you're planning to run on it. You probably don't need anything fancy, your biggest requirement might be the GPU/iGPU if you're planning to do transcoding.
I have a old optiplex 7010 with i7 and 8gig RAM. About 70€ on eBay. I upgraded it with a nvme SSD to bolt from (great tutorial here) and salvaged an old SATA HDD from an external case.
Currently runs 11+ container in proxmox without issues. Way beefier than a raspberry pi.
I also have room for 3 more hdds to put in a mergerfs system and 2 additional pcie slots für things like a faster LAN card or an additional SATA controller
This depends entirely on what you want to run. A pihole needs vastly different resources than for example offering jellyfin to 20 simultaneous users. Both can be hosted at home.
Sorry for my ignorance, so brasil has nothing like an Amazon where OP could buy a new pi from and have it delivered? If thats the case i feel like I could buy OP a pi and ship it to them in brasil for less cost than it would be to buy anyother option of hardware for a home server. Assuming USPS still offers flat rate boxes for international shipments.
USB3 - you need this otherwise connecting external drives will be a joke
Motherboard needs to accept up to 32 GB of RAM. Mine currently has only 8 but knowing I can upgrade is nice.
Quiet - must be silent when idle.
CPUs of less than 8th? gen will suck at video transcoding due to lacking certain capabilities. Important if running jellyfin, etc.
The beauty of self hosting is it's all about your individual circumstances so you priorities and acceptable tradeoffs will differ.
I have very similar requirements, but I'm currently using a Pi with some external drives since that's how I started out. Would you mind sharing what you ended up buying? My place is pretty small, so the 'quiet' requirement is one I care about a lot. Personally I'd love to get something passively cooled, but I haven't seen much!
You'll need a lot of RAM for all the containers, 64 GB is nice. A CPU that saves power when idle is fine. You'll need at least 16 TB storage (32 TB RAID1). SATA HDD is fine, when you have ZFS and cache using SSDs. Never use USB for drives.
It does not need to be quiet. Just put it in the basement and close the door.
My jelly fin server is running off of an entry level desktop in 2009, a single core celeron processor. I have to downscale video files to standard definition in order for it to keep up.
If you aren't planning on running a media server go for a old desktop or laptop (with Ethernet port).
Your bottleneck will be your network speed 9 time out of 10.
Also use a firewall and a anti scrapper (ex: Anubis) to avoid wasting resources.
I'm using my old desktop from 2010. There's no such thing as a server that can "do it all", but any computer from the last 10 years would probably be a fine place to start. The more you do, the more likely you'll be to hit some sort of performance limit, and by that time you'll know more about what you actually want.
In short, find old cheap/free hardware and start playing around.
raspberry pi's arent the best option anyway since you need to add on a hat just to get some SATA ports. i think Odroid has some boards with sata connectors. zimaboard or zimablade are some other options off the top of my head
But the the requirements for a server that “does it all” remains a mystery to me.
"All" can include anything. I mean, you can include a home parallel compute render farm that will cost millions of dollars.
You're going to have to narrow it a bit down. You can have people maybe suggest some of the things that they use their systems for. Maybe it's hosting services for a cell phone that some people use cloud-based services for. Maybe it's home automation. Maybe it's a webserver. Maybe it's AI image generation.
EDIT: To put it another way, a self-hosted server is just a computer, often without a monitor and keyboard directly attached, that you have in your physical possession. The range of things that that might be used for and capabilities it might have is really broad. It's like saying "I want a vehicle. What is a vehicle that can do everything?" I mean, that might be a bicycle or a three-trailer road train, depending upon what you're going for.
8 GB RAM or more. OS installed either to SSD, or a HDD that does not store service data (for performance). a modern CPU with at least 4 cores. modern means it has at least AES and AVX2 instruction sets to do math quickly, but probably you can just pick one made in the last 10 years, with less years generally meaning better energy efficiency.
what kind of services do you want to host on it? initial plans, perhaps longer term plans?
Rather than give you specific recommendations, here's some guidance for parts
Mobo: The more slots you have for RAM and storage, the better.
CPU: literally anything. More cores and faster cores are ideal, but CPU requirements for these things are generally lower than a desktop.
RAM: Buy 1 stick of the fastest and highest capacity RAM your motherboard can handle. When you're ready or you start to see slowdown, buy another of the same stick. You can get far on 16-32GB, you won't need much more until later.
Storage: an SSD for the OS and one or more HDDs for storage.
PSU: generally anything in the 500-700 range will be good. You'll want more if you plan to put a GPU in, though.
Literally any old PC is likely fine. It may be slow, it may struggle or even fail with some of the very complex software (perhaps you will encounter timeouts, or you will spend so much time waiting for memory to swap in or out to disk that it won't be worth using) but you can run Linux itself on a potato and if your machine isn't powerful enough, maybe you can get a second one and run different stuff on each, or just scale down your expectations and don't try to self-host LITERALLY everything just because you can. Certain services are very intense, others will run on a very small piece of a potato.