views:

1368

answers:

15

Hi,

I thinking taking my website off of a shared hosting plan and hosting my own web server to save some $$$. I never hosted a website before and I’m very new to this. I’m using ASP.NET 3.5 and SQL Server 2005 Express. The laptop I will use as the web server runs on Windows XP, 1GB DDR SDRAM, a AMD Turion 64 mobile technology ML-30 / 1.6 GHz CPU, ZoneAlarm firewall and a cable modem with 10 Mbps download and 512 kbps upload. The site currently has 600+ registered users with a few hundred unique page views a day.

Some questions:

What are the steps from ground zero on hosting a web server for ASP.NET and MS SQL Server from home? As I mentioned I have no experience at hosting websites, just building them so please be descriptive.

How much would it cost to run your own server? (Expecting just a rough estimate so I can out weigh shared / dedicated hosting plans.) Do I need to purchase any licenses? Is it more of a hassle than it’s worth?

I’m not sure what else to ask. If you have any advice or information to share that would be great.

Thanks for your help. I really appreciate it.

John

+2  A: 

Your home cable connection will never be reliable enough to run a live website from. It is also probably against the terms of service of your cable contract. You are going to have to host this website in a datacentre if you want to have reasonable reliability and uptime.

Jack Ryan
+5  A: 

Well. this is a pretty broad question. I guess the first thing would be do you have a static IP address and does your ISP allow port 80 traffic. Typically that would require a business plan from your ISP. I have charter and they charge roughly $60/month for a static IP. You could use dynamic dns http://www.dyndns.com/

Robert
A: 

I think you may need talk to your ISP provider to get a dedicated ISP before setting up your web site.

J.W.
+3  A: 

Chances are your ISP doesn't allow hosting. If they see a lot of upstream traffic, they may send you a nasty letter and tell you to stop.

If your ISP does allow hosting, you'll just need a static IP address, then you can have your domain point to that address. After that, you'll need to harden the hell out of your server, because having a public-facing server is going to invite plenty of nasty people to try and cause trouble.

Generally, hosting yourself is usually more trouble than it's worth, unless you have specific requirements that aren't met by a normal hosting solution. Have you thought about just paying for a dedicated server? You could even get a virtual dedicated server for cheaper, if you'd rather.

I would recommend against hosting a website yourself, from home. There are so many things you'll need to worry about, and opening up your home network (if you have one) to the internet is generally a Bad Idea.

Alex Fort
A: 

Assuming that you don't get shutdown as per the comments above, All you need to do is

  1. Setup the website on your server I'm hoping that this is the area that you really wanted feedback for. If you can get the site up so that its locally browseable - thats most of the challenge. The rest is poking holes in firewalls or editing routing tables. If you have a specific question about IIS, ASP.NET, etc. You should ask it so that we don't get into a debate on whether you should host it from your home connection.
  2. Make sure that its accessible publicly by checking firewall/routing stuff.
  3. Point your dns entry to the server - using dynamic dns or your domain name services.
tooleb
+1  A: 

The cost for running your own server is very high. Your biggest problem is that most ISP's dramatically limit your bandwidth's UP speed. Second, ISP's do not allow you to run websites unless they're so small that they run unnoticed. They may terminate your service if you're caught... most likely you'll just be shutdown without notice.

It's much cheaper to just pay a small fee for the hosting.

That said, if you're goal is to learn rather than to do, you can look into free (open source) servers. (Apache, Tomcat, etc.)

Chadwick
+6  A: 

Personally I would NOT do this for a number of reasons.

  1. Hosting sites via a personal Cable internet plan is almost guaranteed to be against your terms of service.
  2. Your upload speed is not even close to good enough to serve websites, nor is the connection typically stable enough
  3. Hosting using windows XP as a server is not a good idea, there are very minimal connection limitations, thus your site couldn't handle much traffic at all.
  4. It is a big hassle, if you go to do it yourself you have to do maint, backups, and all of the stuff that happens behind the scenes that protect you as of now.
Mitchel Sellers
+1  A: 

If you're making any money from your site, it's probably more trouble than it's worth in terms of maintenance setup and trouble-shooting. Also depends on how bad downtime is for you. If downtime costs you money then definitely not a good idea to run your own.

Davy8
A: 

It's perfectly possible to run a webserver from your home network. I do so myself, however you should not consider it for any other purpose than limited, controlled access by an identified group - for example as a family resource, or a demonstration site to show clients, or as a testbed for technology you wish to try out. I would not consider your proposed use appropriate.

Your limiting factor is that the Up speed of an ADSL network is severally constrained compared to a commercial datacentre, and you'll both experience slow speeds if any significant load is placed on it and be liable to issues with your ISP.

So reasons for doing so compared to buying shared space? Well primarily that it does give you total control. Shared space is always limited by how the hosting service has configured the resource, and if you want to do anything outside what they offer - specific extensions, new versions of code etc, then you'll be out of luck. The cheapest option next to hosting yourself is a dedicated virtual server - these are fairly cheap and common for linux, but much less so for Windows. For instance one case I did this for was when developing a custom ISAPI module for a client.

Things you need if you do go down this route? Well although you can use a dynamic DNS I'd strongly recommend you obtain a fixed IP, which probably means you'll need to have a business level broadband account anyway (and you should, as it will make your ISP more forgiving of your network usage). You'll need to configure your route to pass though requests on port 80 to your webserver and make sure that your website is visible from outside.

As mentioned I do this myself for certain limited purposes. However I also take the additional step of having broadband on both my business and home telephone lines and connecting the server by itself on the home line - everyone else uses the broadband on the business line. The server is normally isolated from my main network too. This gives me and additional level of security, ensures that traffic on my main connection and the hosted connection do not impact each other, and also gives me a backup broadband service in event of problems with my main ISP.

Cruachan
A: 

I have a "business class" cable connection; it costs me around $20 extra over a residential connection but does give me a static IP address. I use it mostly for mail but I do have a website on it.

600 subs = how many page views / day / hour etc. You'll want to consider the available uplink speed you have on your connection. The drawback on mine is my uplink is relatively slow. I keep my site small so it loads fast but you may not have the option.

I also apply qos to slow down my outbound mail over other traffic. You might consider a router running DD-WRT if you are not sure how to use qos - there are a lot of how-tos on the subject and I've found DD-WRT easy to use.

Eddy
+1  A: 

I would also question whether the laptop is capable of handling 24/7. I would expect that laptop designers work with constraints of the machine not being on all the time and built their hardware to those limitations.

There is a reason server grade hardware is server grade hardware. It is not just an excuse to wrings some extra $$ out of you.

If your hardware goes down, what is you recovery plan and what will outages do to the perception your user base has of you? While potentially saving some $$ on hosting fees you may lose out in the long term with less users.

Peter M
A: 

On top of the above comments, you'll probably need to set up your router to use DMZ

Ciaran
A: 

If you are using cable/adsl:

  1. Configure and run the web server on your computer

  2. Use port forwarding to forward the requests from your modem to your computer

  3. You need to register your domain name and also services like www.dyndns.com if you don't use static ip, mostly ISPs provide dynamic IPs using dhcp.

Xolve
A: 

I would not host on a laptop if I had 600+ users.

Also AFAIK the licensing terms of SQL server Express does not allow you to use the database for commercial purposes (hosting).

Unfortunately this is one of those situations where you have to do it right, or not do it at all.

Invest in a dedicated server with correct SQL server licensing and avoid the headaches of managed hosting.

Konrad
A: 

Totally doable for the amount of traffic you have described. I can't imagine that this is close to the most cost effective option unless you are weighing against a dedicated server or colocation. Endless shared hosting options that would be a small fraction of the operating cost. Maybe even some dedicated virtual servers that would be cheaper too. That said:

  1. Upgrade your internet account to a business grade account with at least one static IP address.
  2. You are going to need a Windows Server running the IIS. I'm not 100% certain, but pretty sure that you cannot host in IIS off of an XP machine and be compliant with MS licensing. SQLExpress should be fine as long as you can live with the data and other limitations.
  3. You are going to need a firewall, something more than Zone Alarm, and shut down EVERYTHING you aren't using. This probably means leaving port 80 and 443(SSL) open and shutting down the rest. A hardware firewall would be best.
  4. You have some firewall and router configuration to do route your static IP to your server.
  5. Set up DNS for your website to point to your static IP.
  6. At this point, get a "hello world" page out there to verify your server is accessible from the outside, set up your site, and your off and running.

HTH.

JasonS