Home Server Build Questions (OS, filesystem, etc.)

Jonathanese

Distinguished
Jun 7, 2010
273
0
18,790
OK, so I'm about to upgrade my desktop, so I'm taking my old components and building a server.

Specs:
CPU: Core i5 3570K (Stock + voltage bump)
RAM: 16GB DDR3-1600 (Stock + voltage bump)
MOBO: ASUS P8Z77 Motherboard

WIFI: ASUS PCE-AC68
LAN: EXPI9402PT PRO dual gigabit adapter (+onboard gigabit ethernet)

Storage
1x 4TB WD drive (pulled from WD Elements external drive)
3x 1TB WD Blue
1x 60GB OCZ Agility 3 (I have 840 EVOs, but I figure they would be overkill for the OS)

Use Cases/Goals
- Home Router
- Internet Gateway
- Firewall
- Network-wide ad-blocking (Pi-Hole)
- File Server
- Plex Server
- Minecraft Server
- Home Automation (Home Assistant)
- SQL server
- General lab for learning backend programming (Java, PHP, Python, Node.js, etc)

Believe it or not, the last member of that list is my main motivation for all of this. I'm an electronics engineer and I want to expand my knowledge for better career paths.

Questions
1. What server OS would you (personally) recommend? I'm going to install Ubuntu Server tonight but would love to hear opinions.

2. Is ZFS recommended for this case? I'm quite impressed with it, but not sure if it is overkill for a home setting. (Experience is good, though.)

3. I also have an ASUS AC-68U router. Should I use this as my wireless AP, or is my add-in wireless card enough for me to basically sell the router?

4. What software should I consider for some of these functions? (I'm looking at pfSense)

5. What is a good GUI for managing things like storage and just keeping track of what's running? Home Assistant can add tabs for web GUI's, so a web GUI would be awesome.

And anything else. I'm totally interested in hearing what you guys have to say, or hear about your own projects. Or to hear about how I'm a dork who should be using nothing but CLI. All ears.


 

Jonathanese

Distinguished
Jun 7, 2010
273
0
18,790
I suppose if I wanted to do C#, Azure, and MS-SQL, then that would require windows server, but I hear it sucks and the price would be basically double what I spent on the whole server rack unless there's some special deal out there.

But otherwise I'm looking mostly at linux distros due to their ubiquity, the fact that I'm already familiar with Windows, and of course the fact that it's free. AFAIK Home assistant works on any OS that supports docker, and PiHole has wide support as well.

As for SQL, I used to have my raspberry pi 3 run my home automation, and pihole instances while storing its data to a SQL database that was also on the pi.
 
I highly recommend proxmox. It's based on debian stretch so if you're used to ubuntu then the command line will be familiar, not that you will need to do a lot in it. Once you have proxmox installed on ZFS(ssd in cache) you can start creating VMs and containers. It has a large container library, every turnkey one and dozens of the popular linux ones. I use ipfire and have used pfsense. One note on pfsense inside a VM is you need to turn off hardware offload. You also need two NICs to run a router.

You do all your viewing controlling remotely with spice (vdi quality) or novnc. So you can put the desktop away somewhere.
 

Jonathanese

Distinguished
Jun 7, 2010
273
0
18,790
Nice. Thanks for the info!

Right now I have it up an running with Ubuntu Server. I'm embarassed to say I got fed up with the command line when trying to configure my network connections, so I installed Webmin, which I've noticed seems to sharply divide the linux server community. I personally have found it extremely helpful, especially for learning. I like being able to SEE things

As of today, I still have the issue that I can't plug my modem into my desktop and have it establish a connection. It still has to go through my router. so I can't turn the server into a gateway until it can get internet directly.

(Well, there's also the buyers' angst of feeling like I spent too much on a network for 1 person in an apartment)

I'll also need to map out what services I want for which task. DNS will obviously be dnsmasq through PiHole. I'll have to see about DHCP through PiHole or others. Don't know what else I need, but I did check "use as router" in the webmin network config. Is NAT already handled?
 


Do you have 2 NICs? You should give proxmox a try and put ubuntu server in a vm. Configuring a router will be very difficult. a vm with ipfire or pfsense will make it a breeze.

Try a full version of ubuntu with spice(qxl) and virt viewer to access it on windows.
 


You will need to create two linux bridges in proxmox. You can add 1 NIC to WAN, 2 to LAN. Make the proxmox host ip in your lan.

check the mac address of the bridges and then when you run your router VM you add the bridges to WAN/LAN on there and configure dhcp etc and that's about it. edit the vm to turn on during reboot. you can access the host even with no router because it has a static, which makes configuring your router a lot easier.
 

Jonathanese

Distinguished
Jun 7, 2010
273
0
18,790
OK so I got my routing working. I just had never set up the actual routing in iptables.

Thanks for showing me proxmox. That may become my preferred VM. Though I won't be using it for routing based on what I had read. You basically want routing and firewall to happen on metal, and then bridge the VM's virtual connections with the local connection. My understanding is that if you do routing and firewall on a VM, then the metal is still vulnerable.

No my current issue is that when I reboot, I have to run "netplan apply" in order for the server to appear, and then reapply my IPTables settings to get internet traffic routing again. And then I'm also going to see if I can doing any QOS.
 


ipfire has very good QoS. it's one of the few running fq_codel for bufferbloat.