Transforming old PC into home server - OS options?

I finally decided to upgrade my old home PC. I plan to turn my existing rig into a home server. I have been doing some reading around and looking at different options. I have a few things I would like it to accomplish, which hopefully can be done with the one box.

The rig will consist of…

Intel Core i7-870 Lynnfield
Asus P7P55D-E Pro
G.Skill Ripjaws 2 x 8GB
500G SSD Boot
Multiple Spinners…
maybe a random GFX card?
Corsair 650TX 650 Watt

Here is a list of things I would like to accomplish with this transformed build in a semi prioritized list.

  1. Storage. I have a 1TB drive in my machine now along with two or three other various external HDDs and they are starting to fill up. My real concern here is data loss. Some of these drives are fairly old and I would like to get some sort of redundancy going instead of just ignoring the issue. I am thinking some sort of RAID? I would like this to be expandable in the future by throwing another disk in occasionally, and not have to buy a whole bunch of disks if possible.

1A. NAS. I’m not sure if this is obvious but I would like the storage to be accessible across my network and potentially outside of the network.

  1. Web Server. I run two small websites, currently from raspberry pi’s which I would like to migrate over to a more powerful machine. If it matters I run nginx/mariadb.

  2. E-mail Server. I also have a small email server on the pi’s for my wife and I tat I would like to migrate.

  3. Minecraft Server. My brothers and I enjoy playing minecraft from time to time. I’m not talking 100’s of players at a time.

  4. Media Server. Most of what I have spread out across the drives currently is media (photos, home videos, music, etc…) I would like a way for the whole family to stream, view, etc… from wherever.

  5. VPN. Not exactly sure what options exist here and if this is strictly necessary - I think this would essentially be the way I would access from outside my network?

7ish… Code repo, sftp, vms, mqtt, ssh…

  1. Tinkering and learning…

That last point is a good way to explain why I am asking for it to do so many things. I definitely enjoy learning and playing around with different things.

Am I asking too much of one server? Right now the pi’s are handling all of the web duties and this machine, even at 10 years old, blows them out of the water. I know storage and media serving can be taxing, but it is just my wife and I (soon to be my daughter) that will be using this. What sort of internal networking upgrade (if any) would I need to make this worthwhile? Currently on a Netgear Nighthawk X4 router.

Like I mentioned I did some reading - there was a good thread here - about different options. Unraid, freenas, owncloud, samba, zfs, btrfs… I would say I am comfortable in a linux environment (debian, raspbian, ubuntu) and figure that will be the way to go for something like this, but I am definitely not sure. I have read about docker and also think that may be useful for my workload. I am looking for advice here for sure. I know this is a lot to unpack but I do appreciate any of the info and am looking forward to the learning process. If this is in the wrong spot just let me know!

Freenas does those things.

1 Like

Fedora

You will have a lot more playroom when you go docker or something. So I would recommend some sort of Linux with portainer/docker. Would install a gui for troubleshooting if this is new for you otherwise headless for most performance and managing trough portainer-web. Fedora or Ubuntu will do.

A Minecraft server can actually use quite a lot of CPU and RAM resources, depending on the settings. You will have to try it and see if it works well enough.

You’ll want at least two drives for RAID. There were some good deals on WD Reds last week, but you can probably still find some cheap ones. And if you just need 1 TB then you can find one of those for like $40 on sale. People are giving them awaya.

More drives and space are always better though. It depends on your motherboard and how many SATA ports it has. And of course some cases can’t physically hold more than two drives. If your motherboard has a RAID mode, I would not use it. For ZFS or BTRFS you will want the drives in their standard AHCI mode.

For networking 1 Gbps Ethernet is the way to go. Even if the rest of your machines are on WiFi plug the server directly into the switch on the access point. WiFi signals step on each other so if you have a server transmitting and the access point retransmitting it to the downloading PC you have half your WiFi bandwidth. With an Ethernet connected server you have the full WiFi bandwidth for downloads or uploads.

A random old graphics card should work just fine. I keep an AMD RX460 around for builds. I used to have an old Nvidia 980. Whatever works and is cheap or left-over. Depending on the BIOS you may even be able to remove the graphics card after setting up the OS and still boot, and do all your administration over the network.

Just bear in mind that desktop hardware isn’t built to run 24/7. Most of the time it’s fine (I’ve done it a lot in the past as well), but just be aware that it might fail in unexpected ways and may corrupt some of your data on the way out.

Personally I had it happen with a chipset that was toast (literally, I burnt my fingers on the thing), it corrupted data for a short while before disks started “disappearing” and I noticed something was seriously up. Most data survived, but I lost some pictures in that ordeal (I know I should’ve had “real” backups, but well, cloud storage wasn’t quite a thing back then, certainly not at reasonable prices and proper size tape devices were the price of an actual computer).

Not trying to talk you out of it, at all. Just something to be aware of, if there’s data on there that you value (like pictures…) you might want to get an off-site backup service with Borg or Backblaze (or hell, just use Borg or Duplicati to stuff it encrypted on Google Drive or so if it will fit), just in case…

I definitely need to do some more research about docker. What do you mean by saying I will have a lot more playroom by going that route? More performance headroom? Storage headroom?

I don’t have a problem going headless, but like you said to make troubleshooting the initial setup easier I’l run a gui version, likely Ubuntu Server.

Minecraft is pretty low on the list of priorities and wont be a main use case. Interesting to know though, thank you.

I plan to pickup a few drives (maybe 4 or 5 and hopefully 4-8TBs each) to run the RAID. I have read so much about RAID in the past but the more I think about it I have never actually implemented one… I did some quick reading and realized that indeed my mobo (old as it is…) does have a RAID mode. If I don’t set up the RAID that way how do you suggest I implement it?

I will definitely plug the server into the router directly - no wifi.

I have a HD5850 laying around… hopefully thats not too old. My RX480 is going into the new build but I can swap them over when I upgrade.

Thanks for your input!

Very interesting point. If I am doing this for data security it only makes sense to go all out. Maybe I’ll pick up an external that I can copy over data too and leave in cold storage (unplugged). Most of the important photos are backed up on google as well.

I have a homeserver I setup about 2 years ago now and I ended up choosing Ubuntu 18.04 LTS. It doesn’t offer as much “out of the box” or “turn key” solutions as other OS’s like FreeNAS, but with some googling and some friendly internet help I have managed to make it do everything I want it to. Hardware limitations aside of course lol. Plus it has definitely taught me ALOT about Linux and best practices.

2 Likes

Freenas and other vm selutions will have a hit on CPU and ram capacity. By going dock you wouldn’t have to deal as much with the hardware allecation. Minecraft server for example will quickly need 4 to 8 gigs of RAM. If you use docker this can scale really easy. Have a lot of players on your server more RAM it goes. Less players online but wanna watch a movie, Plex has the priority. Etc.

Ah perfect. That sounds like the ideal solution.

I’d also recommend Ubuntu 18.04 LTS.

Stick ‘Webmin’ on it and you can control it all nicely through a webpage. ZFS on ubuntu seems great; and you can get a nice plugin for webmin to help with ZFS too

2 Likes

Another vote for FreeNAS here.

ubuntu, fedora, etc. can all be configured to do this; but this is work.

FreeNAS will make it a lot easier, and has ZFS out of the box on a supported platform.

16 GB of RAM will be plenty.

I think there’s even a minecraft server plugin for freenas… runs in a jail, not a VM, so no VM overhead. And even if the plugin is no longer maintained, spinning up a jail for this sort of thing is trivial in freenas.

Undoubtedly FreeNAS would work. I think I like the flexibility and honestly the learning experience of implementing it myself in an Ubuntu Server install.

When you say ZFS out of the box, what are you referring to? Is there some lengthy complicated process for implementing ZFS (still not 100% I want to go that route) NAS from ‘scratch’ on Ubuntu Server?

If you are migrating from Raspbian, Debian would be an obvious choice as an OS. Otherwise, CentOS, Fedora or Ubuntu.

If you are concerned about data loss, then RAID is not a solution, backup is. You can use your drives as they are and purchase a separate HDD that you can use for hourly / daily / weekly backups from all your old drives. Also, for RAID, you need to have the same capacity drives.

As for VPN, I suggest you don’t place your VPN on the same machine that you host your emails, websites and media, unless you want to go with Virtualization, which would be pretty taxing, but where I recommend ProxmoxVE. The Pi should be able to handle OpenVPN just fine and could be placed on a separate subnetwork (if your router allows you to mess around with that). I see you already mentioned VMs, so probably Proxmox would be a good start, then using whatever OS you need for special stuff (like Debian for your email server and another Debian VM for your web server).

1 Like

I personally have my backup in the cloud. Amazon has for example free photo backup with Amazon prime. Also you can backup to a friend’s house for free (probably if they can do the same) WebDav is slow but will do the job. But yeah some harddisks in a locker will work to. But honestly @dirtyelf first set things up how you like it and then figure out te backup. The first month you probably be fine. Theoretically things could even fail the first month but you probably won’t have much running ether.

I’ve used Raspbian and Ubuntu the most. I figure Ubuntu, the server flavor, would be best for this application. Not smart enough yet to understand the minute differences between Debian and Ubuntu but I’ve never heard of a specific Debian Server flavor.

You are right, RAID does not ultimately protect against data loss - backups do. A RAID setup makes it a bit less likely and if setup properly allows for time to recover from drive failure instead of skipping straight to data loss. Right now I’m looking to add that extra redundancy step, and will ultimately figure out a viable backup solution as well.

I like the idea of running the VPN on a pi. It seems like the better option for me is a docker container based setup whereas you are suggesting running VMs for the various tasks? I’m still formulating my plan in my head based on all of the suggestions.

ZFS on ubuntu (for root filesystem) is still pretty experimental.

Linux Kernel updates can and do break ZFS (though official ubuntu binaries will presumably not ship until they fix this now they support zfs in the next(?) release). However if you do plan on compiling your own kernel for whatever reason, something to be concerned about.

This is not a thing in FreeNAS, ZFS is and has been an integral part of FreeBSD/FreeNAS for 10+ years now.

If you stick with Ubuntu official kernels on 19.10 plus, you should be fine.

But you’re still going to be going through a bunch of wheel reinvention; FreeNAS has pre-configured alarms, emailing, etc. for ZFS issues, alerts, auto-tuning, easy GUI jail set up using thin clones, etc. It has baked in ZFS reports, ZFS configuration tools, etc. It has best practice ZFS documentation. All of this will be missing on ubuntu, and up to you to re-implement or figure out yourself.

I totally get it if you want to go through the experience of configuring it all yourself on Ubuntu, but it’s going to be very much a case of wheel reinvention for this use case in my opinion - by all means do it, just so long as you’re aware that the work (and far more) has already been done - you could be doing something more productive.

I’m not saying ubuntu will necessarily be difficult to set up and make work. But you most likely will not have the monitoring, reporting, alerting, etc. for various ZFS alerts, etc. set up unless you manually figure out what you need to monitor for, and actually configure it.

e.g., something as simple as disk failure in a ZFS vDEV, ubuntu likely won’t send you an email for it for example… unless you monitor for that and set up the mail alert yourself.

Thank you for the info. Now I am reconsidering what may be best for me. You bring up some very valid points.

I do not plan on compiling my own kernel, so no worries there. I would be sticking with the latest LTS version of Ubuntu Server.

Part of me wants to go through this process to learn, that should not be underestimated here. I don’t mind re-implementing something that has already been done - its how I learn. That being said, some things are better left to the experts. I certainly wouldn’t implement my own AES encryption algo…

You mention that ZFS as a root filesystem is experimental but would my root FS need to be the same as my NAS drives? Could (or SHOULD) I run different FS for the NAS and the root? Seems like a bad idea, but its worth asking. Also what other options exist for the NAS FS that may work better for me? Would a linux raid with mdadm and a more standard FS work better? Not requiring a full VDEV for expansion, better stability, etc…?

1 Like