10

If I want to host a website from my home, I buy a domain name. Then, I get a static IP from my ISP. Next, I point it to the IP address of my home system. I can even use the SQL server installed in my system and not worry about the size. I am not talking about piles of servers here. Just one server.

I was wondering if it is that easy, why not do it? Is there something that I am missing here? I am talking about moderately simple website. But does it matter?

Dynamic
  • 5,786
Asdfg
  • 293

7 Answers7

16

It depends. If it's a small personal website, why not. If it's an enterprise-scale website requiring 99,99% or more service availability, it's certainly a bad idea.

Firstly, think about the cost:

  • Windows Server and Microsoft SQL Server already have a substantial price per licence. Do you prefer to pay dozens of thousands of dollars right now to host your server, or it's better to pay a small fee of $20/month for a basic hosting plan?

  • A dedicated server, even a basic one, has some cost too.

  • Also think about the power consumption. Running a server 24/24, 7/7 will obviously have an effect on your bills.

Secondly, think about the reliability:

  • It's 3 AM. Wake up! There is a small DDOS attack on your server. Your server is out. What is your strategy to be back online before 4 AM?

  • Haven't you ever said "Oh no, not again! My ISP suck! The internet is down again this month!"? Now imagine you have your server up and running, but not serving anything, since it's not connected to the internet any longer, and you have no idea how long it will take to the ISP to restore your connection?

  • Good morning. Your hard drive failed. By the way, all data is lost. Have a good day.

    Are you ready for this scenario? Do you have scheduled backups? RAID? More generally, how do you manage redundancy of every component in your system? You can purchase a professional rack server which does all that. It will cost you $3 000. Ready?

Thirdly, think about the scalability, performance, and thousands of other things which are too long to list here. For example, one basic thing: most ISPs have an upload connection much more limited than a download connection. Are you ready to pay ten times you pay currently to your ISP just to have the same speed both ways?

Again, there is nothing wrong in hosting your personal website on your own computer if you don't care about the money. But there is a huge gap between a home-made hosting to a professional hosting which ensures service availability, which deals with cooling of their servers, which has UPS and other means needed to maintain the servers up if something happens with the power grid, etc.

11

This is a great idea. Not only will you learn a lot about multiple topics (system administration, security, HTTP, the value of logging, detecting loss of contact with outer world, etc etc etc etc), but you will be keeping The Internet more personal, more human, more of what drew us to it in the first place.

Did everyone want to "surf the web" in 1996 just to see slick corporate PR, or be manipulated by targeted ads? No just no, but HELL NO. We wanted to surf the web to see what other people did, to see strawberry poptart torches, dancing hamsters and phony toilet-cams. Do it as fast as you can: get your web server on the net.

It sounds like you want to run a Windows-based server. I know nothing of Windows, I run my personal servers (http://stratigery.com) on Linux. Switch to linux and you can email me questions any time.

Bruce Ediger
  • 3,535
3

There are so many things that could go wrong:

  • Your computer might crash and your site will be down.
  • Your computer is less secure when it has a static IP.
  • You have to troubleshoot all of your server issues.
  • It is not very easy to update server-side software.
  • You might have to pay for a static IP (depending on your ISP).
  • Theft, fire, computer dies, internet screws up, and so on...

Also, after you do install everything, you still have to have a fair knowledge of what to do with it. You also can't use a web builder. And you would have to pay for cPanel.

Honestly, I can't see why you would set up a server by yourself (unless you want to learn PHP or other special reasons).

Edit:

To respond to comments, the OP did not say he was learning, but that he was hosting a small website. I agree with the fact that it would be nice for learning (which is why I have one) but he isn't learning (as far as we know).

Dynamic
  • 5,786
2

This is not a good idea to run your server yourself, out of your home, using your regular, consumer-based Internet, if you're doing it for a business.

The most important point that @MainMa mentioned is that regular, consumer Internet has an imbalance in download speed and upload speed. With most ISP's, the upload rate is roughly half that of the download rate.

When surfing the web, the upload rate is used when you browse the Internet for handshakes and HTTP requests with the server. If your upload speed is significantly reduced, then any web pages you try to visit will hang and have trouble loading.

A mouse chewed through the phone lines out on the street once and electrocuted itself, and although my download speed was fine, my upload speed was reduced to about 150Mbps. My Internet connection was terrible, and I was just browsing the net! Imagine what it would be like if you had other people using your upload bandwidth...

Also, imagine what the user experience on the other side is like. Anyone who tries to load content from your home Internet will only see about half the rate of your download speed. This just doesn't scale, as home Internet wasn't designed to handle this load.

Most organizations that host their own applications have T1 lines or a business-equivalent Internet. In general, it's priced significantly higher than home Internet.

Thus, if you're doing this just to learn, and don't expect to have any traffic whatsoever, and the computer you're on is securely isolated from the rest of your network, then it could be a fun experiment.

But if you're planning on running a business off of this setup, prepare to lose. This is not a case where you want to attempt to be "off the grid".

jmort253
  • 9,347
1

The Internet is an incredibly hostile place. Automated attacks are constantly scanning for vulnerable servers. I haven't been involved in this business for years, but I know that around 2005, at our local university, the average life span of a server connected to the internet with a stock, default, install of Linux or Windows was about five minutes before it was compromised.

If you are are going to be responsible for a server that is connected to the Internet you are going to have to get up to speed on security issues, and you will have to continue to follow security news to stay abreast of new threats. If you want to learn this stuff, that's great. There's no better way to learn it then managing your own server. It is a lot of work though, and only you can decide whether it makes more sense to focus on your core interests.

1

One good reason for not doing this I don't see mentioned yet: if your home gets it's internet via ADSL. Don't forget that "A" stands for asymmetric. You might be able to suck http from other folks' sites at a nice 4-8Mbit/s, but if you only have 256-512kbps upstream, your site will seem very slow if it has any non-trivial image content and/or there are more than a few simultaneous users.

Apart from that, I'd say it's entirely possible. I knew someone who ran a successful online business for years with the only web server being a machine under the desk in their home office.

timday
  • 2,492
1

There's no reason why not - you can happily rent a server or a VPS and have the exact same problem.

Only there is 1 reason why you'd go for the VPS or dedicated server instead of one at home: the internet connectivity is much better at the datacentre than it is with your home connection. Sure, it costs a bit more, but you won't have to have a server whirring away in your back bedroom eating up all your electricity. You will also have a lot more tools to manage the thing too (like backup space and auto-reinstall).

The rest of the problem is all a learning exercise. I'd recommend Linux for your server as it runs the majority of the web, and there is much more information out there about managing, securing and maintaining it than there is with Windows.

gbjbaanb
  • 48,749
  • 7
  • 106
  • 173