I am planning on building a little MicroATX computer to run a Minecraft server for my friends and me. The problem is, I know a whole ton about computer building, but not too much about Minecraft servers. I know how to set up a standalone Minecraft server and how to port forward since I have done it many times in the past using my gaming rig as the host. For my project here, I want to run a hub world, an SMP, and perhaps a KitPVP. I know little about Bungee Cord and how it works, I also need to know if I should run the servers all on one OS or have them run on virtual machines, one for each server. I'd also like to see if I need to manually divide up my CPU between the servers or not.
The computer I plan to build has an i5-9600K and sixteen gigabytes of DDR4-3200. I want to store the servers on a 120GB SSD and have regular backups going to a terabyte hard drive.
The Meaning of Life, the Universe, and Everything.
This is exactly what I did, and I will tell you, it works great. Your CPU and RAM should be perfectly adequate, although if you want to do any more than that I would recommend an i7 and 32GB of ram, as that's what I use and know works well. I would make them all separate servers for permissions reasons, but not separate OS's, that's just a waste of IP addresses. Then it's all server configuration. For this OS, I would use Debian 9 or 10. Bungeecord basically just forwards the traffic through to your server(s) and allows you to easily switch between them with the /server command (or other means, such as plugin modified nether portals). The plugins I would use are: EssentialsX (the whole suite), PermissionsEX, WorldGuard (for your spawn area(s)), and if you ever do a Plot World (which I would also recommend) then you would need PlotSquared and WorldEdit.