I know this does not immediately address your question, but please do me a favour in this case and get a managed service. Either temporarily until you acquired the necessary knowledge or permanently if that is not a priority for you.
It is highly dangerous and irresponsible to maintain a server without having the required experience to do so.
I understand, but considering you want to connect the server to Cloudflare it is publicly reachable and that is the dangerous part I was referring to earlier.
Dont get me wrong, I dont want to sound patronising (even if I maybe did) but it requires experience to manage a (public) server and if one does not have that experience yet there is a very good chance that server will be compromised and used for everything from spam to attacks.
If you want a test environment for acquiring that experience it is much safer to run that on a local machine that is not reachable from the outside (that can even be a VM).