Host Your Own Domain, Website and Webserver

This post was originally published on 13 July, 2006.  This version has been updated.

I have a problem with facebook, myspace, and other social networking websites out there.  The problem is when I upload my data to their webservers….I don’t own it anymore.  They do.  And they can do whatever they want with it once it is there.

With this in mind, I’d rather setup my own twitter using Status.net or my own digg using Pligg.  But I’d do it on MY OWN SERVER.  That way, any content I upload is MINE.  It doesn’t reside on some server in California or DC and get recycled to advertisements.

I like to control my own stuff.  I don’t like to be cut out of the loop.  If you’re like me, then you’ll want to host your own domain, website and webserver so that your friends/family/shrink can quickly and easily connect up to see new photos, find out the latest family developments, and understand why you wear tinfoil hats every Thursday after 4pm.

Normally, to host your own webpage you would need to spend around 7 bucks to purchase a domain.  Next you would need a hosting plan that usually runs around 3-15 dollars per month to serve up your web pages.

What most don’t realize is that you can skip these steps all together…you don’t need to get dedicated hosting (this blog is hosted on dedicated hosting…but started out in my apartment!) to serve pages up to your friends and family.  You absolutely do not need to get domain name services through a provider.  You can even host your own webserver using a dialup connection (that’s right…I said dialup) although. I don’t recommend it (but I’ve done it using 56.6kbps).

Why would you want to do this?  The answer might be to stay connected to friends and family…perhaps install a gallery so that your grandparents can see pics of your new dog/car/tinfoil hat.  Sure, you could waste my time with MyWaste..er..space and facebook and be barraged daily by advertisers and solicitors and be inundated with the minutiae of what all your friends had to eat for the day …or you could roll your own web host, install a gallery or website, and provide media to your friends and family without costing yourself a dime.  That’s right, NO COST (except time spent getting it running).  Just remember, your website might not survive a digging or slashdotting if you run it yourself.  Keep that in mind :)  So without more chatter, let’s get to the meat and potatoes of things:

Meat and Potatoes

If you have Cable or DSL at home (not a business account) you have something called a dynamic connection.  Dynamic connection means that it can change every once in a while.  DSL and cable ISP’s purchase blocks of IP Addresses in the dynamic range so that they can keep consumers separate from businesses.  It’s also easier for them to manage dynamic pools of people than to have to remember static connections that don’t change for everyone.

Because of this problem…an ever changing connection for you at home…web servers and websites do not do very well.  The reason for this is because when you visit a website on a dynamic connection one day, it might be different the next day.  In order for visitors of a website to find you each and every single time, you need a “domain” or web name that points back to the address (IP Address) your internet service provider changes on a whim.  You’ll also need an update service to update your website each time your ISP decides to change things on you.

Believe it or not, there are free services out there to do that for you.  You just have to be willing to do a little extra work in the beginning to set things up.  You can also do this without spending 20-40 bucks a month on DNS service.

I’ll divide this up into 2 sections.  The first will deal with Linux hosting.  The second, Windows hosting.  This is only something that I’ve found easy to do and the price is just right (it’s free).  The only thing that I recommend is a dedicated internet connection (cable, DSL) but even this is not necessary as dialup can be used.  I recommend that you use the Linux way of doing things since it is more secure and doesn’t require a restart every time you patch it.

*note: I’m assuming that you aren’t behind a firewall/proxy of any kind and that your ISP doesn’t block port 80 traffic.  If your ISP blocks port 80, see the appendix at the end of this article.

LINUX

No matter what version of Linux you run, chances are that you’ll be able to install the apache webserver.  This is good news as over half the websites of the world are run by apache. I’m not going to address the specifics of how to set up your apache…only how to get it a fixed address without buying a domain.  So, you have your html or php pages located into your webservers public directory…good…whatever application you have is installed on your server.  Now, how to resolve your IP…lets say it is…25.24.4.166 (for our example) and you want it to have a host.name.com to bind to.  Easy to resolve.  Go to http://www.no-ip.com/index.php and sign up.  You can get a site from noip that is like yourname.theirdomain.com/.net/.info.  They have cool names like sytes.net and servebeer.org…even workisboring.com.  Other services like dyndns.org also exist and provide the free service as well.

You’ll be able to choose your own top level name…for instance, Ithink.dnsiskinky.com could be your new domain name.  Next download a client from the download tab: https://www.no-ip.com/downloads.php

The linux client is a tar.gz source and is simple to install. Follow the instructions when installing.  You may have to install compilation tools (devel packages like GCC) to install the client.  You now are the proud owner of yoursite.theirsite.com and your IP will ALWAYS update (as long as noip.com is up) each time you log on/sign on/beam up or whatever it is you do.

How does this help you?  Well, if you’re like me, you have a dynamic IP address.  If you connect to the internet via cable, dialup, or dsl…you also have a dynamic IP address.  Dynamic means that it will change from time to time without warning.  So by binding yoursite.theirsite.com to your IP address…you don’t ever have to worry about what IP address you have anymore.  Instead, you’ll always be able to connect using yoursite.theirsite.com.  You can host a webserver using Apache and a virtual host in this style as well (look for another how-to on this subject later) so that everyone can visit a shiny website at yoursite.theirsite.com.

Now you can give your friends/family/dog walker/mailman the address to your new webserver…maybe it’s Ithink.dnsiskinky.com like we used in the example above.  Now when they visit that address in their web browser, your application or web page displays for them.  You also get bragging rights at being the most technical friend/relative/dog walker client/household that everyone knows.  Now let’s cover Windows.

WINDOWS

First you need a free and clear webserver since one is not included by default with windows. You can download Apache for this as well OR try the Abyss Webserver.

Interestingly enough, Abyss is also free!  I ran it while my linux machine was being worked on (bad hard disk…it was a Quantum 200MB drive from 1913…had to upgrade) and it worked just great off of Windows XP.  Download that puppy and install it.  Make sure you read all of the documentation and familiarize yourself with how Abyss does business.

The next step…getting a hostname… is even easier than the linux method because you don’t have to manually install the noip client…they have a windows installer.  Go to http://www.no-ip.com/index.php and sign up.  Choose the domain name you would like (see above examples in Linux section).  Next, download the noip client from the download tab: https://www.no-ip.com/downloads.php but this time choose the windows client.  From there, you’ll be able to install this with a simple double click.  Fill in all of your information (pretty self explanatory) and make sure that it will run with each time you sign on.  You’re set! Your IP will now resolve to the yourchoice.theirhostname.com

CONCLUSION

You don’t have to spend a dime to keep a domain bound to your IP.  This is perfect for the home user who just wants a gallery or homepage.  It’s even good for someone who has a weblog or enthusiast site.  It’s good for someone who wants to be able to find their files and music…setup Jinzora and stream all your music library to yourself anywhere you are!  Setup Amahi and have access to all the goodness it brings.

Please remember, this wouldn’t be good for a business to have.  You will probably violate your ISP’s terms and conditions for using their connection if you tried to run a business this way.

It’s always good form to put a link of the stuff you are using on your website to direct traffic back to your software provider.  When I used noip, I included a noip link on my main page and also an abyss webserver icon as well.  It’s just good form and some companies/software providers necessitate the use of their logo or a link on sites that use their software/code.  Just be a nice person and give a link back to them.  Good luck! Have fun!

Also, please note that having hosted my own webserver for quite some time (circa 2001) I’ve found Linux and Apache as a combination to be more secure, faster, and more stable than any webserver I’ve hosted on the Windows Platform. I included information on Windows mainly to introduce you to the concept of free and open source software. If you thought getting a webserver for free was great, think about getting a whole operating system! Give it a try, you don’t even have to install it (use a Live CD).

APPENDIX

If your ISP blocks port 80 traffic, your webserver won’t work.  Before deciding that your ISP is blocking however, make sure your firewall has the appropriate rules to allow incoming traffic.  You can do a quick add to IPTABLES in the following manner:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -j DROP

If you’ve opened up the appropriate ports and things still don’t work, it will be safe to say that you’ve determined the ISP is blocking port 80.  How you can get around this conundrum is to switch the listening port on the webserver to a different one and redirect traffic there.

  1. See how to do this for IIS Webservers
  2. See how to do this for Apache Webservers (normally in /etc/apache2/httpd.conf but your distro may vary.)
  3. See how to do this for Abyss Webservers

If you still have problems, drop me a line in the comments section.  I may not be able to answer all questions but I can most likely get you to a person/place/thing that can.  Have fun and thanks for reading!

This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.

  • Pingback: How to Host Your Own Website and Webserver | Yet Another Linux Blog

  • http://blog.littlebearz.com littlebear

    thanks, I didnt’ know the iptables one, i used firestarter :P

  • Mr. Man

    For whatever reason whenever I try to go to my website (I’m using IIS on Win XP Pro) it gives me one of those generic search portal pages. Any ideas?

    • http://linux-blog.org devnet

      Sounds like DNS hasn’t switched over yet. It may take up to 24 hours for DNS to replicate out and your records to be updated. Give it time and see if it works. You can also switch your local DNS to use google’s at 8.8.8.8 and 8.8.4.4 instead of using your ISP’s and see if it makes any difference.

  • http://www.ccnabooksblog.com Joey

    Want to host my own website a newbie on too but I’m still newbie on this. Will be trying your tips!

  • http://www.gezer.pl firma remontowo-budowlana Krakow

    You have absolutely right.

  • Zachary

    How to did you get you website to go mobile if you host your own any help will be thank

  • jansio resoni
  • Dreamblvr

    I want to start a small local business and damn, I wish I understood any of this. Thank you for the interesting read. Do you make house calls?

  • Derek Radz

    How much traffic do you think this would allow, I have 1mbps uploads and 10mbps uploads and would be running it off a dual core 3ghz Linux machine with 2gb of RAM (would be dedicated to web hosting)

    • Derek Radz

      When I said 10mbps uploads I meant downloads

      • http://linux-blog.org devnet

        You wouldn’t survive a slashdotting, that’s for sure :)

        It would be fine for a static HTML site and even a small wordpress blog. But as time goes on, you’d find your page views increasing and would feel the strain. It’s probably fine for starting out though…and I’d only do it if it was a DSL or FiOS line…because with cable you’re going to have to share with your neighbors and that can throttle your site speed.

        • tubeyoumedia

          Do you think a 100/100 connection running a 2 core 2,3ghz processor with 512mb ram would be enough for a medium sized website?

          • http://linux-blog.org devnet

            I don’t see why it wouldn’t be…the RAM is a bit on the low side but it should work with some tweaking to your webserver. Just google low memory lamp setup and you should be set.

  • Linuxhostingindia

    Awosome tut for best linux hosting in India please visit http://bestlinuxhoster.com pioneer in Linux hosting, Windows Hosting, VPS, Reselller hosting and Dedicated Servers.

  • fibercables

     

    http://www.fibrecables.com.au
    has been set up as an e-commerce site, with our main objective being to offer
    you an extensive range of quality fibre optic products which will assist in the
    installation and upkeep of your fibre optic network whilst offering the products
    at competitive prices. Our aim is to make your shopping experience as easy as
    possible; the site has been designed so that navigation is simple and ordering
    quick and easy.

  • Madhab

    EmailOcean is a brand new platform to cater to your email marketing needs.
    It provides promotional emailing at an amazingly low rate of $0.10 per 1000 emails. The customer only pay for what is utilised. The brilliance of EmailOcean lies in it making the process easier and faster for the customer,as compared to Amazon and Sendgrid, EmailOcean has a beautiful Web-app which makes creating and sending the campaign a lot more easier. Using this web-app one can also send and track their campaigns.
    As of now,the registrations are open by invitation but register yourself with the website and keep self updated as to when they are open to all or for your surprise invitation code.

    http://www.emailocean.com

  • Madhab

    EmailOcean is a brand new platform to cater to your email marketing needs.
    It provides promotional emailing at an amazingly low rate of $0.10 per 1000 emails. The customer only pay for what is utilised. The brilliance of EmailOcean lies in it making the process easier and faster for the customer,as compared to Amazon and Sendgrid, EmailOcean has a beautiful Web-app which makes creating and sending the campaign a lot more easier. Using this web-app one can also send and track their campaigns.
    As of now,the registrations are open by invitation but register yourself with the website and keep self updated as to when they are open to all or for your surprise invitation code.

    http://www.emailocean.com

  • Madhab

    EmailOcean is a brand new platform to cater to your email marketing needs.

    It provides promotional emailing at an amazingly low rate of $0.10 per 1000 emails. The customer only pay for what is utilised. The brilliance of EmailOcean lies in it making the process easier and faster for the customer,as compared to Amazon and Sendgrid, EmailOcean has a beautiful Web-app which makes creating and sending the campaign a lot more easier. Using this web-app one can also send and track their campaigns.

    As of now,the registrations are open by invitation but register yourself with the website and keep self updated as to when they are open to all or for your surprise invitation code.

    http://www.emailocean.com

  • Jig

    Smashing, this has got me inspired now. I am starting to work on this right now. Just a couple of questions, I am hoping you can answer… I am on a 60MB DL and 3MB Upload connection. I want to create a static page website.. and I want to set up my own email server (imap/pop3 and possibly calendar as well.) I plan to use my Raspberry Pi to do this..
    Do you think this type of a setup can handle an email server ?
    Thanks again for your article, its very helpful.

    • http://linux-blog.org devnet

      Yes, definitely it can handle the email server….

      However, there is one caveat. Unless you have a static IP address with business class internet…your mail server won’t work well because most of the major mail services out there (gmail, yahoo, hotmail) block email from dynamic IP addresses that DSL/Cable ISP’s give out to home users.

      So your mailserver will be rejected if you have an IP address from a dynamic pool given by your ISP. The way around this is to configure your mail server to use an email relay like No-IP’s backup MX mail server here: http://www.noip.com/services/managed_mail/backup_mail.html

      It costs money but will allow you to not be blocked on 80% of the mail servers worldwide. Thanks for reading!

  • Vignesh Kumar

    Thank You very much. It works fine. I am able to test my Domain Name from other countries as well, such as Germany through my Friend out there. I am living in India.

    But I am not able to browse through Apple Safari Browser though. I don’t know but i referred that it may be due to multiple redirects. I hope, it doesn’t work since i am port forwarding my router to PC. It stays like this now Domain Name(No-ip) -> Router -> PC.