Ok, so I must’ve misunderstood the question, because to me it seems OP already has all the necessary ingredients to bake this dish. And yet, the vast majority of comments recommend various 3rd party services which is the complete opposite of selhosting.
Fire up nginx/apache2, and all good, no? What am I missing?
Are you able to ask your ISP customer service to set up port forwarding for you?
At minimal you want HTTP (Port 80) but you probably want HTTPS (443) as well. If you’re hosting DNS as well you will need port 53 too.
Have those ports routed to the “inside” IP of the machine you want to use, and the rest of it is basically just setting up the webserver (and possibly DNS) to serve your domain.
NB: While on the phone with your ISP, ask them what the DHCP lease time is. Ideally you want a static IP for your setup.