I have an early 2000s PC (pre-SATA) with 512MB RAM (I'd love to tell you about the CPU, but its under a cooler that isn't going anywhere) that's been sitting in closets for about 15 years. Assuming I'm willing to buy into it, can something like that reasonably host the following simultaneously on a 40GB boot drive:
Nextcloud
Actual
Photoprism
KitchenOwl
SearXNG
Katvia
Paperless-ngx
Or should I just get new hardware? Regardless, I'd like to do something with this trusty ol business server.
Edit: Lenovo or Dell as the most cost-effective, reliable self-host server in your opinion?
That's an antique. The list of stuff you want to run probably needs several gigabytes of RAM. I think Nextcloud alone needs 512MB. I'd recommend newer hardware, you can find stuff on ebay for under $100 that would be a LOT more powerful than what you have.
I'm a huge fan of the lenovo thinkcentre m92p tinys. Basically the same thing as the dells for ~$150CAD. 3 of them (plus a couple PIs) run my homelab with lots of room to grow.
If it's really early 2000s, you might want to put it on eBay. There are retro gamers out there that could use it as good Windows 9x era gaming PC. You could give that HW a new life in someone's retro setup.
It's great HW for occasional gaming, but it's very inefficient for 24/7 operation. You want to be somewhere after 2015-ish for something that is supposed to run constantly.
Won't be able to do much, and even if you can do some stuff you have to keep on mind that the energy efficiency would be poor enough that you'd still be better off with a cheap pi from a cost perspective.
If you want something small and cheap, it might be worth getting a used thin client PC.
I got a cheap £20 Igel thin client from eBay as raspberry pi’s were still far too expensive, plus I already had a spare 4GB ddr3 sodimm to drop into it and a 120gb wd green ssd that I’d stripped from its case and fitted internally into the thin client.
After upgrading it one ended up with a 1.2ghz AMD GX-412 cpu, 4gb DDR3, 120gb sata ssd and an external usb 3 1tb hard drive i also had laying around.
As a component of my homelab, it’s running Debian 12, docker with a few containers (pigallery 2, Libreddit, portainer, searXNG), it’s my backup Emby server and my main Pihole and PiVPN client.
Completely silent, sips power and still has capacity spare to run more containers and other projects that catch my interest.
I ran on a Pi 4, but switched to a PC for jellyfin. The pi can't transcode for shit. It was slow to boot and slow over SSH.
Look for a NUC - they're designed for desktop use, so they have more poke than a Pi. The N6005 CPU is a good choice, the N5105 is ok. These are x64, so you'll have the widest range of packages. 4GB will do, if its upgradeable later. NUCs usually take SODIMMs, which you can pick up on ebay for peanuts.
Bear in mind that network chipset will be your bottleneck in some use cases. If it has a "gigabit port" but only a cheap chipset, and you use it as a router, you might max out at ADSL speeds... in that case you'll wish you'd gone for a box designed for soft routing, which are a fair bit pricier.
Old hardware is awesome to reuse most of the time but it's not nearly as efficient as our hardware today.
It's probably good to just properly recycle the old gear and spend $200 on a mini-PC from Amazon that has three times the power all while using less electricity.
I usually completely tear down old equipment into is raw materials, the best I can. It's less likely to be shipped off to another country for uncontrolled destruction and I get more money back for the materials.
You could use it as part of your infrastructure. E.g. DNS server, database server, redis server, file server. But running the whole stack will be too much unless you upgrade the RAM. 1 GB minimum, preferably 2.
My first server was quite a bit tougher than that and it had some serious issues when I started asking it to do a lot at once. You might be able to get it going, but I suspect you might not be too happy with the performance you get out of it.
It's a bit shocking how much hardware you can get for how cheap. Even an Intel Atom box available for less than a hundred bucks that has no fan would likely run circles around that thing. One thing I'd definitely suggest is no matter what, an SSD if you're planning to run multiple platforms.
My plan is to keep the bare minimum on the boot drive required to get these services running. This is probably a Linux crowd, but I don't speak the language and would rather keep it all in Windows if I can help it
If you intend to run Windows on it the RAM issue will be even more important as Windows is a fair bit more resource-intensive just to get the base OS running.
It's worth taking the time to learn enough Linux to use it for these types of projects, it will pay dividends in efficiency and flexibility.
I would never say no to using older hardware. Yeah, it'll be like punishing yourself. But you learn a shit ton.
I recently started self hosting. I started on a PC with the same specs as you've said. Booting was an issue. And tons of stuff always broke.
But i learnt a lot. And then there was a time, when i genuinely thought i could do better and switched an old laptop with decent specs.
Pi's are very expensive and too dang low on supply.
So always make do with what you have. If it's your first home lab, then yeah go ahead. In a few months switch
It's a great machine to learn on. Build yourself a web server or something like that. You don't know what it can do until you push it, and you're not out anything by taking it to its limits. If it has something like a Core 2 Duo you could even run KVM and launch a virtual machine to learn about that process. Old hardware is meant to be run into the ground and you'll learn a lot in the process, including getting a feel for how much hardware you really need to perform the tasks you want. (I literally just retired a rack server this year with a Core 2 Duo and 8GB of memory, which was used to run five VM servers providing internet services.)
Can you give me some case use examples for VMs like that? My VM knowledge stops at emulating OSs for software compatibility and running old Windows versions for gaming.
What I've always done is to create a VM for each service I run -- so like one each for DNS, apache, postfix, dovecot, and even one to handle ssh and ftp logins. I'll also set up a VM when I want to test a new service, so I don't trash out a physical machine. This makes it easy to make extra copies if I want to run redundant systems or just move them to a different physical server. I suppose this is something like what docker does, except these are entirely self-contained systems that don't even need to be running the same OS, and if someone happens to hack into one system, it doesn't give them access to all the others. I also have a physical machine set up as a firewall to direct the appropriate ports to each VM and handle load balancing, but for your experiments you could do this task on the physical desktop and point everything to the VMs running inside it.
One nice thing about KVM is that you can overload your memory space. So like if you only have 512MB available and you set up three VMs with 256MB each, the actual free space will be shared among them because usually a system doesn't take up ALL of its memory (although for linux you might need to limit how much cache ram each system will try to use). In reality what you find is that a system might run a task or get a burst of traffic that uses more memory, so it will pull free physical memory from the other VMs as needed, then give it back when the task is done. You won't really want to run web-facing servers with such a tight space though, unless you are the only person actually using them, but hopefully it gives you some ideas of how you can play around with what you have available in that machine.