This is how I’ve set it up:
I have a FreeBSD server at home running lighttpd webserver which hosts this website. I am using DynDns.org’s free service (a big thanks to them) to take care of my ever (not!) changing non-static ip address from my internet service provider. Obviously, http port 80 is forwarded on my router to make my site available to the web. I had to add CNAME record of my domain’s (www.strugglingcoder.info) DNS to make it point to my dyndns name – which in turn is pointing to my home ip and that is how one can reach my website.
Only thing which sucks is that I need to use proxy servers to access my website when I am inside my home network. Else it points me to my router login. That is probably because how port-forwarding works. It does not work well within the network.
I am using wordpress (thanks again!) as my blogging engine.