Technology

Home
Up
Travel
Lu-gats
Hotels
Photography
Skiing
Sports
Poker
Technology

Lu-gats (http://www.lu-gats.com) and this personal homepage (http://howard.lu-gats.com) are both hosted on my PC at home.  Many of you have asked me how this is done so here's a quick guide on how I've set these sites up.

Why host my own site?

bulletFull control and access
bulletThere are no additional fees other than the monthly cable bill
bulletNo banner or pop-up ads from those "free" services
bulletNo disk space or upload volume restrictions
bulletNo limitations on server-side scripting or database access 

You'll need the following components to host a site:

bulletHardware: PC Server, Cable Modem, Router with Firewall
bulletSoftware: Operating System, Web Server
bulletServices: Broadband Provider, Domain Name Registrar, DNS Server
bulletOptional: Web Page Development Tools, Uninterruptible Power Supply, Remote Access
bullet>> More Specifications & Links...

PC Server
It doesn't take a workhorse super machine to host a website.  I run the sites off of a Dell Pentium II 400MHz machine with 448MB RAM (3 RAM slots--256MB, 128MB and 64MB) howard.lu-gats.com serves mostly static pages so the processor speed is not the limiting factor.  The biggest factor on speed in this case is the upload bandwidth.  www.lu-gats.com is more database intensive so the processor speed becomes more of a factor but the queries that it performs are not that complex.  
[Top]

Cable Modem
A cable or DSL modem, as the case may be, can be bought or rented from the Broadband provider.  I bought a

Router with Firewall
I have a

bulletIt allows me to share the one incoming IP address amongst 4 machines.  
bulletIt can be configured to be a DHCP Server that dynamically assigns an internal IP addresses to each machine that is connected to the internal LAN.  This internal IP is only known to the local network and is unknown to the outside world, but when any of these machines hits a website outside of the network, the IP address associated with the request is all the same.  Note that the Server requires a static IP address and is thus not setup for DHCP IP addressing.
bulletThe router has a built-in hardware firewall.  I can block any or all incoming traffic that hits my sites.  I can also redirect traffic on external public ports to internal private ones.  Because Cox Cable blocks the standard http port 80 (to discourage web-hosting), I am forced to run my websites on non-standard ports by configuring the firewall to redirect traffic going from the external non-standard ports to the internal ones that the websites run from.  A consequence of this is that some companies block outgoing traffic to websites that run off of non-standard ports.  If your company does this, you would be unable to reach my sites from work but would be able to do so from home via your ISP. 
bulletI can share files and printer resources on the network.  This is convenient for backing up files to the server or moving new web pages to my websites.  The printer sharing is also convenient so I can print to the printer attached to my server from any machine on the network without physically dangling a printer cable to the machine that needs to print.
bulletThe router maintains my external IP address.  Since Cox Cable does not offer static IP addresses needed to host websites (they might for a fee), I can maintain the static nature of the IP address that is assigned to me by leaving the router on all the time.  Until the router crashes or needs rebooting, my external IP address is in effect "static".  This worked pretty well once I upgraded the firmware in the router; since the upgrade it has been stable for several months.  The previous firmware was pretty shoddy and required a reboot every few days.  Make sure you get a router that's proven and is stable.

[Top]

Operating System
I run Windows 2000 Server which allows me to host multiple websites on the same server.  It also comes pre-installed with Microsoft IIS 5.0.  With Windows 2000/XP Professional, you'll only be able to run a single website and will need to manually install the web server (which does come with the operating system but is not installed by default).  Windows 2000 Server is also extremely stable.  I've had it up and running for over 100 days with over 10,000 server requests without any problems.  Unlike some of its predecessors, I don't forsee any reason why it wouldn't remain stable for another couple hundred days.
[Top]

Web Server
Microsoft Internet Information Services 5.0 works pretty well in my experience.  But make sure you get the latest security patches as it has had a history of security holes.  Configuring the Web Server by itself is not very difficult.  The trickier part is tying it in with a router if you're behind a firewall that doesn't support standard ports as is the case in my situation.  The things to keep in mind here are to:

bulletSpecify the IP address as the Internal static IP address of the Server
bulletThe TCP Port is the internal port number of the site but must be mapped from the external port through the router to be able to access it from outside the network
bulletSet two entries for the Host Header Name:
1) The name of the external domain name that maps to the non-standard port
2) A blank Host Header Name entry so that you're able to access it from within your network

[Top]

Broadband Provider
Cox Cable is my provider and they offer decent access speeds and service.  I get about 500kps downloads and 128kps uploads.  The convenience of always on, faster speeds, and web hosting is great.  The only downside is they recently started to block port 80, the standard http port, forcing me to run the web sites on non-standard ports.  See more information on how the router should be configured.  Then see the section on DNS Server to forward your domain name to your site running on the non-standard port.
[Top]

Domain Name Registrar
I registered Lu-gats.com at Register.com  They offer full domain services at $35/year.  Some of the cheaper domain registration sites may not offer everything but I haven't done much research on this.  As part of the configuration, I chose to have the DNS serviced by ZoneEdit.com rather than Register.com and thus have set the DNS parameters in my Register.com account to point at ZoneEdit's DNS servers.  The reasons for this are described in the following DNS Server section.

DNS Server
A Domain Name System translates a domain name to an IP address.  When you type a web address into a browser, your ISP takes that address and looks up the corresponding IP address to then go out to the site and retrieve the page you're looking for.  DNS Servers are also known as nameservers.  All DNS Servers get their information through zone files which direct the web user to a destination.  I use ZoneEdit.com, a free service that has an easy interface to create these zone files.  With a static IP address, this is all that's necessary to configure.  Then point your DNS parameters of your Domain Name Registrar to ZoneEdit's DNS servers.

With a dynamic IP address, each time the IP address changes, we have to update the zone file in order for your domain name to resolve to the new IP address.  You can run a service on your server that periodically checks to see if the IP address has changed and when it does, automatically sends the updated IP address data to update the zone file.  There are some utility programs that do this on ZoneEdit's Dynamic DNS page.  

To further complicate matters, if your broadband provider uses dynamic IP addressing and blocks the standard http port 80 (as in my case), you'll need to forward the URL to one that contains the non-standard port number that the web site is run off of.  With ZoneEdit, I've forwarded http://howard.lu-gats.com that the end-user would type in a browser, to http://howard2.lu-gats.com:XXXX where XXXX is the non-standard port number.  Next, I have howard2.lu-gats.com mapped to my dynamic IP address, thereby mapping the forward to http://[my.dynamic.ip.address]:XXXX  Whenever my dynamic IP address changes for whatever reason, the howard2.lu-gats.com entry at ZoneEdit.com needs to be updated to forward the address properly.

If IP Address changes were made directly with your Domain Name Registrar, the changes can take up to 72 hours to propagate to all the top level domains around the internet.  By pointing your DNS parameters of your Domain Name Registrar to ZoneEdit's DNS servers, you can update your Zone file and the changes are reflected instantaneously.  Depending on your ISP, caching may occur which may not necessarily pick up these changes immediately.  If this is the case, hitting refresh on the client browser would pull back and recache the new changes.  
[Top]

Web Page Development Tools
I develop the static pages using Microsoft Front Page.  Server-side dynamic pages using Active Server Pages ASP (Guestbook and future PhotoViewer) are developed using Microsoft Visual Interdev.  All photo thumbnail pages are developed using a template I created in ThumbsPlus.  There is a more detailed description in my Photo Pages section.

When it comes down to it, a text editor is all you need along with a knowledge of HTML to build web pages.  However, these tools simply matters, save time and are nice and easy to use.
[Top]

Uninterruptible Power Supply (UPS)
A UPS is nice to have in cases of blackouts or brownouts in your electrical power.  I have an APC Back-UPS ES350, a low-end backup device that is all I need to protect against surges, brownouts and 5 minute blackouts.  It has 3 back-up slots for 3 vital components that would need to keep the web site up and running in the event of a power outage:

bulletPC Web Server
bulletCable Modem
bulletRouter

The backup has saved me on numerous occasions, mostly brownouts.  This is especially vital if you are running a server with dynamic IP addresses which need to be updated each time it changes.  An outage would reboot the router which would acquire a new IP address which would need to be updated at your DNS provider.  Additional surge-protected outlets are nice to protect my flat screen monitor and speaker system.
[Top]

Remote Access
pcAnywhere is a great software tool to access your PC from remote locations.  Once logged in remotely, it allows you to work as if you were sitting in front of the PC.  You need to configure:

bulletHost machine with pcAnywhere in host mode
bulletAuthorized users, passwords and access
bulletOpen up ports 5631 and 5632 on the router for pcAnywhere access
bulletIP address from which it can be reached (your current IP address) -- this needs to change if your IP address ever changes

Once configured, load pcAnywhere on the client PC from which you want to access the host and connect via IP address, enter a valid UserID and password that you've configured, and you're in control of the host PC as if you were right there at home.
[Top]

Additional Specification & Links

Component Specifications Approx Cost* Website
PC Server Dell Pentium II 400 MHz, 448MB RAM $300 www.dell.com
Operating System Microsoft Windows 2000 Server SP2 $500 www.microsoft.com
Broadband Provider Cox Cable $35/month www.cox.com
Cable Modem Toshiba DOCSIS PCX1100U $100 www.toshiba.com
Router SMC Barricade 7004ABR $100 www.smc.com
DNS Provider ZoneEdit Free www.zoneedit.com
Web Server Microsoft Internet Information Services 5.0 Included with Win2K Server

www.microsoft.com

Web Page Development MS Visual InterDev (ASP)
MS FrontPage (HTML)
Cerious ThumbsPlus (Photo Thumbnails)
$400
$100
$80
www.microsoft.com

www.cerious.com

Domain Name/Registrar lu-gats.com registered with register.com $35/year www.register.com
Utilities pcAnywhere 10 $100 www.symantec.com
Universal Power Supply APC Back-UPS ES350 $50 www.apc.com

* Approximate 2002 market prices
[Top]

__________________________
Questions or Comments: Sign Guestbook
Last updated on November 08, 2004