I got bitten by homelab fever few years back and got myself a small server. I had such grand dreams with it that never materialized. Now it sits unplugged in the corner deprecating itself :(
Stuff that I was planning to do:
* Managed VM platform (~"EC2")
* Centralized auth (FreeIPA)
* ZFS NAS (also possibly ceph) + backuping
* Container platform
* Your typical web/email stuff
* Monitoring/alerting/log management
* VPN endpoint (and other more advanced networking stuff)
* Probably something more I have already forgotten
I realized that building a private cloud actually takes serious effort and not just putting some lego pieces together. There is also bit of circulatory stuff there that makes bootstrapping more difficult, especially on one single box.
To make it simple, since you already have the hardware, I would suggest setting up the server as a VM Host to allow for experimentation with little effort.
VMware vSphere Hypervisor, Proxmox, or Microsoft Hyper-V Server 2019 are all free options. It makes it easy to experiment with the above in parallel.
My current VM Host has
* One VM as a docker host (turtles all the way down) for development tools. Build server, bug tracker, private artifact repo (Sonatype Nexus).
* 3 VMs as a Kubernetes cluster for experimentation
Building a NAS is the only thing that would take significant effort and is a project unto itself.
Unless you have a strong desire to experiment with failure modes (network dropping out, killing iSCSI, online VM fail over), stick to a single box.
I provisioned a cloud in my home PC using the free open source equivalents of the Red Hat Cloud Suite. It's not trivial, but I did it in about two weeks.
Red Hat Cloud Forms -> ManageIQ (to manage your virtual private clouds, hypervisors, etc)
Red Hat OpenStack -> DevStack (the cloud itself)
Red Hat OpenShift -> OKC (container orchestration)
Red Hat Virtualization -> oVirt (for VM's)
Red Hat Ansible Tower -> AWX (to automate everything, including deploying all the previous software listed)
If you plan on doing all of this from one machine, understand that you will need to enable nested virtualization which will require some BIOS/OS configuration to make it work.
Try out yunohost. It makes this kind of thing trivial because they have gone and written all the config files and gotten single sign-on working with everything so all you have to do is push a button to install services.
This part, though, is really easy nowadays. FreeNAS is idiot friendly.
At some point, I need to migrate my current FreeBSD/ZFS setup to something newer, and I'll probably use FreeNAS next round simply because it's so much easier to manage. (Yes, I can do it from the command line--but I do it so rarely that I always have to go reload all the ZFS command set into my working memory.)
I've been pretty successful in meeting my private cloud dreams. I use FreeNAS as the bare metal OS, and run Ubuntu VMs which host Docker Containers (using NFS to keep actual persistent data on the underlying FreeNAS box).
Docker/Docker-Compose isn't quite lego.. but it's awfully close.
Stuff that I was planning to do:
* Managed VM platform (~"EC2")
* Centralized auth (FreeIPA)
* ZFS NAS (also possibly ceph) + backuping
* Container platform
* Your typical web/email stuff
* Monitoring/alerting/log management
* VPN endpoint (and other more advanced networking stuff)
* Probably something more I have already forgotten
I realized that building a private cloud actually takes serious effort and not just putting some lego pieces together. There is also bit of circulatory stuff there that makes bootstrapping more difficult, especially on one single box.