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,746
  • 9
  • 45
  • 73
Asdfg
  • 293
  • 1
  • 8
  • 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](http://serverfault.com/faq). – yannis Mar 11 '12 at 19:46

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.

Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
  • 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. – Arseni Mourzenko 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
  • i think its funny that you talk about RAID, backup, DDOS, worrying about getting the site up by 4am, etc. etc. It's a hobby project. What, is his 12 year old kid doing night shift service desk?! If my hobby project went down at 3am, I wouldn't even know until I got home from work the next day. And I doubt I would care. Not like I'm getting paid for it, right? – Kevin Mar 11 '12 at 00:20
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
  • 16
  • 16
  • 1
    +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 Mar 10 '12 at 22:18
  • +1 for learning, and +1 for the 96 personal web nostalgia. Remember that period when typing `.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 00:50
  • @Bruce - You can host your content out of your leaky basement and still put ads in the sidebar, and you can host on a professional VPS with absolutely zero advertising and no chance of electrocuting yourself :). The latter option is possibly a lot cheaper and more reliable. Thus, I'm not 100% sure I understand your logic as it pertains to this question. I do like the idea in general of not tainting content with ads, but it's not clear if that's what user Asdfg's question is likely about. :) – jmort253 Mar 11 '12 at 01:22
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,746
  • 9
  • 45
  • 73
  • 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. –  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
  • @jmort253: totally agree on the business part, but that hardly makes it the worst idea ever. – haylem Mar 10 '12 at 23:26
  • @haylem -It's the worst idea ever if it's for business. I really think that needs to be made clear. So many people new to this don't understand the difference. Maybe someone should edit the answer to clarify that it's not the worst answer **IF** it's just to learn. That would be better than everyone downvoting what is otherwise very great, sound, professional advice. :) – jmort253 Mar 10 '12 at 23:35
  • @haylem: But the OP specifically said he was hosting a website on it, not learning. – Dynamic Mar 11 '12 at 00:34
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,317
  • 2
  • 35
  • 63
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.

Charles E. Grant
  • 16,612
  • 1
  • 46
  • 73
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,502
  • 1
  • 18
  • 17
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,354
  • 6
  • 102
  • 172