Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question

closed as off topic by Yannis Rizos Mar 11 '12 at 19:43

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

8  
Home theft, fire, power failure, internet failure, backups and trouble-shooting while you're out of town, on a date or sleeping. As a programmer, I want nothing to do with this and let someone else handle it. –  JeffO Mar 10 '12 at 20:59
7  
You also need to know one or two things about security and network configuration, assuming you have some sort of router and firewall that connects your home with the internet. I'd go for a virtual private server (VPS) any time. You can still do all of the above but without the hassle and at very low cost. Getting the VPS up and running takes less than 10 minutes. All you need is a credit card. –  Manfred Mar 10 '12 at 21:05
    
Home servers are off topic on Server Fault. –  Yannis Rizos Mar 11 '12 at 19:46
add comment

7 Answers

up vote 10 down vote accepted

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.

share|improve this answer
    
+2 for learning about multiple topics and keeping the Internet personal. Nothing beats knowing how things work, and often the best way to learn is to do it yourself. -1 for the Hamster dance reference. –  Kyle Hodgson Mar 10 '12 at 22:18
    
+1 for learning, and +1 for the 96 personal web nostalgia. Remember that period when typing <somecompany>.com was unlikely to work? We had some fun. I miss the personal pages and the likes. Some dedicated hobbyists wrote such great pages out of nothing, whereas nowadays there's a lot of premade things. It's a good thing, in general, of course, if only for its availability to the masses. But god, how things were more fun back. Also, you never saw a jackass (let's call a cat a cat) typing like an 8-year old or demanding for people to solve his problems and sending "bump" after 1 hour. –  haylem Mar 10 '12 at 22:42
    
Heck, back then, the connected 8-year olds where actually typing better than most 20 something today. See what you did? You just depressed me for the rest of the week-end there :) Now where did I park my sun station and my 486? –  haylem Mar 10 '12 at 22:44
2  
In the first paragraph, this definitely makes sense for someone who wants to learn about how servers are managed. However, the 2nd paragraph is a little confusing to me. Can't you still accomplish the same goal of avoiding targeted ads and corporate PR using a VPS? How does hosting a website out of your basement help in the 2nd paragraph? We don't surf the net to see your server, we do that to see your website, and what you put on your website matters very little between the basement setup and the VPS setup. –  jmort253 Mar 10 '12 at 23:12
    
@jmort253 - I just wanted to exhort people to put their own content on the web, and pay for it themselves, so its absolutely untainted by any kind of corporate sponsorship. Ads are blockable, yes, but advertising on a web site gives just a hint of maybe that website is affected by the advertisers. You know, like newspapers. They carry ads, and they can't afford to anger their advertisers, so some stories just don't run. And you can't tell me that doesn't happen. –  Bruce Ediger Mar 11 '12 at 0:50
show 1 more comment

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.

share|improve this answer
1  
That's why Apache/MySQL is free... –  Dynamic Mar 10 '12 at 22:04
1  
Apache/MySQL are free when you're passionate about them, know how to configure and use them, etc. If you're not (which seems to be the case of the OP), Apache/MySQL will quickly become ways more expensive than even paid versions of Microsoft products. –  MainMa Mar 10 '12 at 22:06
    
which is why it is a bad idea ;-) –  Dynamic Mar 10 '12 at 22:07
    
Lampp or XAMPP. It's an Apache/MySQL bundle, and it's incredibly easy to install. No need to install Apache and MySQL separately, unless you want to learn how to configure them yourself. –  jmort253 Mar 10 '12 at 23:31
1  
@MainMa: not a chance. We've just had to hire a consultant to help sort out our SQLServer issues. If you think the licence was a large cost, just wait until you see his fee! MySQL (or Postgresql which is better) are much simpler to use and configure which makes then better than SQLServer (and if you need a super large site, go with Oracle and save yourself a lot of hassle). –  gbjbaanb Mar 10 '12 at 23:35
show 1 more comment

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).

share|improve this answer
1  
I see a very good reason: TO LEARN!!! Sure, don't host your million-dollar project, but if it's a personal site and you don't mind some downtime and don't care for losing 2 followers and that sort of non-sense, I don't see why you couldn't. I don't host much myself anymore, but I certainly did a lot a few years back (website, code repository, FTP server, email server...), and it wasn't that hard. Plus, it's always nice to have some of this working locally (like the code repo). It's a shame when nowadays someone in a dev team doesn't know how to install a server for testing, for instance. –  haylem Mar 10 '12 at 22:38
2  
Lots of ideas are lots worse. –  user1249 Mar 10 '12 at 23:02
    
@haylem - Agreed on doing it to learn, but if you're trying to run a business, it's just a bad idea, period. You'll end up spending all your time managing your hackjob IT environment instead of doing whatever work you're trying to accomplish with said setup. Also, Jae did address the "to learn" part in his answer. So +1 –  jmort253 Mar 10 '12 at 23:14
    
a static IP doesn't effect security all that much. Dynamic IP's don't even change very often with most ISPs. I wouldn't count that as a strong point. –  WalterJ89 Mar 10 '12 at 23:14
    
The other points are pretty strong though. Again, if it's just to learn, go for it! But if it's a business, I'd be very sure to do all my research and have a backup plan for my backup plan. –  jmort253 Mar 10 '12 at 23:15
show 3 more comments

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".

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.