Register
This is rather simple. You can get your dynamic DNS name service from DynDNS or No-IP or any other that you might choose from a search. I leave it as an exercise to the reader to sign up for this service. This assumes you have a dynamic IP address. If you have a static IP address, you're already golden. Just change your DNS settings to point to your home IP address.
Client
When you sign up for a Dynamic DNS service, you'll be given options on a client. Depending on your provider, you might either need to install a small program on a computer on your LAN, or your router might have ability to do the updating for you. In any case, you'll want to be certain that you have the latest client software or firmware for your router. You don't want to be banned from your dynamic DNS provider because your client/router updates too frequently.
Sign up for a domain name
OK, your choice of domain name providers is up to you. However, I have had good experience with godaddy, and their DNS changes are easy.
Change the DNS records
In godaddy's Total DNS, you can change A records (these can only be IP addresses, and therefore not very useful for dynamic IPs) and CNAME records (these point to other domains. This is where you'd put your dynamic dns domain name). If you can survive not having domain.com (this points to an IP address, but anything.yourdomain.com can go to a domain name), then simply change the CNAME records to point to your dynamic DNS name. At minimum, you should change the CNAME record that corresponds to www.
Forward port 80 to your computer
(If you're behind a router). You should change the router to pass port 80 to the computer that's running the web server. For information on how to do this with your router, you can look it up at portforward.com. If you're more directly connected to the Internet, maybe running Windows XP and you have a firewall running, you should make sure that your web server app is allowed to receive requests for that app.
Run a web server
I could leave you to your own search on what web server to run. Nonetheless, I should suggest httpd.conf settings such as:
Using this tactic, you could host any number of domains on your one dynamic IP address. The dynamic DNS setup could be as cheap as free, and your domain cost can vary from $8.95/year.
You can make things really easy with Opera Unite as this browser also includes a web server and is very fast.
The End
That's pretty much about it. I hope that it helps someone. As usual, you can email me (hostme [at] gwy [dot] org) if you get hung up. For an added hint, you now have a domain coming to your home IP address that can be used for any other purpose, including hosting a game server, a mail (SMTP) server, or even a proxy server.
Page History:
10 May 2006: Initial write-up.
11 May 2006: Brief changes. Added link to WebGUI
23 June 2009: Added a clarification based upon input, and added link to Opera Unite information.