Why host your own?
Setting up a web server is getting easier and cheaper all the time, and is now easily within grasp for anyone who wants to put in the time and energy. It used to be that even a bottom-tier hosted Linux server included expensive setup costs, high monthly fees, poor performance, and little to no scalability. Hosting from home was a non-starter due to limited bandwidth and relatively high cost for hardware capable of being an effective server.
Now, would-be admins can get very inexpensive VPS or cloud servers. They can dust off their old PCs - even laptops - and have very powerful servers which, when combined with many modern home connections, can serve low to moderate traffic websites.
Software and online help are also much better. Most of the software is now nearly plug-n-play for those comfortable with text editing. Resources such as Stack Exchange, LinuxQuestions.org, this wiki, project page documentation, and innumerable blog posts with clever solutions to esoteric problems, make finding expert solutions to various issues within reach of everyone.
Advantages and Disadvantages
Consider carefully the advantages and disadvantages of managing a server. While it's easier than ever before and gets easier by the day, it still isn't for everyone!
You’re now taking your destiny into your own hands, and security risks are very real. It’s possible - in fact, with the wrong settings, it is even probable - your server will be hacked and ruined, forcing you to start over from scratch.
You might make a mistake that destroys your server and then discover that your backup method had a fatal flaw, forcing you to start from scratch.
You might have everything running smoothly, but with no automated backup system in place, a bug appears that wipes out your server, forcing a loss of several months-worth of data and time.
There is a lot to learn, and it often seems like the errors in the logs will never stop coming and all too often are self-generated. An administrator might spend six hours tracking down a problem that was caused by a missing semi-colon. To grasp how much there is to learn, take a look at the Intro to command line article - this is really just the very basics that every admin should have down pat. If it seems like a long read, this probably isn't for you.
You are heavily dependent on the kindness of strangers. You are going to be scouring forums, digging deeper into Google searches than ever before, and you’ll discover StackExchange (that’s good and bad. It provides great solutions, but can be a real time-sink and the nazis - ahem - "moderators" tend to be very harsh to n00bs, with many members of the community awarding points to the most clever insults: you are warned). You’ll be posting many places, praying someone there can help you to solve your problem so you can bring your server to the next level.
General time-sink. Managing the server takes a lot of patience and persistence. You may find that a seemingly simple goal turns out to be a huge task, and may cause problems for your server while left incomplete, resulting in not going to bed until the wee hours of the morning. Also, you should reciprocate whenever possible - it isn't right to just be a leach asking all those questions, you need to help out those you can! That's what really makes the open source community work, but does require yet more time.
Far more control over the settings and tweaks. Whenever reading instructions on something you are installing, you may read "for those with root access…" Well, now that’s you! You can make all the changes and tweaks you desire.
Nearly infinite domain hosting with email addresses and databases. Okay, there are limits to the server, but for most small sites the load is so small that it won’t reach the limits of the server. Depending on how and where you choose to host, upgrading can be easy and cheap.
Again, depending on how and where you choose to host, you can get a dedicated IP address. Most shared hosting plans charge extra for an IP address.
You can serve up real, authenticated SSL/TLS encrypted websites to your visitors sans obnoxious warnings or additional costs.
Secure web browsing while away from home. You can easily use your Linux server as a SOCKS proxy through an SSH session, completely locking out any prying eyes that might be snooping around the coffee shop or hotel network.
If you have a friend who should have a website, but doesn't, it becomes very easy to help them out in getting things up and going since all they have to do is buy their domain and point it at your DNS server while you do the heavy lifting to create something they or you can add content to.
Something to always tinker with and improve. Like any good hobby, server administration is something that you will forever tinker with, improve, and learn. With a smartphone you can manage your server from nearly anywhere, so if you find yourself standing around bored some place, just pull out your phone and go to work on your hobby.
If you think you want to host your own, or at least investigate it further, then check out the article on Hosting options.