Topic: Too Damn Late
It's 12:41 AM CDT & it's time once again for Too Damn Late!
WARNING: Too Damn Late is not written in front of a live studio audience. Since it's written after midnight, the contents in here are uncensored by anybody as an act of first ammendment rights. Therefore, if you are easily offended by swear words or outrageous thoughts, STOP READING THIS BLOG ENTRY NOW!!! I don't want to hear any complaints from anybody because you read this with ample warning. I don't writing these warnings, but I do so to protect myself here. By reading beyond this warning, you hereby consent to such adult content. VIEWER DESCRETION IS ADVISED!
This episode of TDL was inspired by the temporary outage of G-mail & a bit of "wishful thinking" of Ms. Olivia Munn (of AOTS) about starting up her own e-mail service. While it's not fucking rocket science, it does require some technical knowledge to set up your own personal web server WITH e-mail service. Anybody can do it about 4 relatively easy steps.
STEP 1: Check with your ISP & your TOS/AUP FIRST!
You're probably wondering, "Why would I have to check with my goddamn ISP about hosting my own web server? I'm playing for my connection, I can to whatever the fuck I want!" It's that attitude that'll either get your ISP pissed off at you for violating their Terms Of Service (TOS) or the Acceptable Usage Policy (AUP), kicked off & banned from their services, or find a big ass "Fuck you" in the form of a $100+ or even a $1,000+ bill in bandwidth overages.
Usually written in the TOS or AUP for personal, most residential connections FORBIDS you from hosting your own server for ANYTHING. While you can get away with file transfers to friends & some P2P stuff, it forbids you from hosting any type of server, be it temporary (like hosting an online game server) or permament (web server) on your connection. It doesn't prevent you from playing online games, it just means you can't serve as host. There's practically two reasons for this.
1) Limited transmission bandwidth between users & your server
Some low-end ("bargain basement") residental connections are only 128 KBps down & 96 KBps up... Usually 256 KBps down & 128 KBps up. Your upstream becomes your user's downstream. So if only have like 3 users accessing your would-be server on top of your normal activities, they would only be able to utilize 36 KBps on average.
If you're serving a small community of say... 30 users at one time, your 128 KBps would get broken down to an average of 4.25 KBps... or about the average speed for internet users... BACK IN 1996!
2) Added strain on usage limits
Usage limits & HOW they track internet usage will vary between ISP's, but those who combine BOTH up & downstream usage... this can cause some problems, especially with those "bargain basement" connections!
Again, if you're using a "bargain basement" connection, you're probably not planning on using the internet that much & would likely have a usage limit of say 10 GB's. Let's say your server has rougly a 75% connection load 24/7 for a month. That 96 KBps (= 128 KBps * 0.75) * 60 sec/min * 60 min/hr * 24 hr/day * 30 days/mo = 248,832,000 KB or 248.832 GB's a month! That's an overage of 239 GB's (as ISP's will round up to the next GB)! At the rate of $1 per GB over... Your Internet bill that would normally be $30 / mo. balloons into roughly $270! Talk about a nice "Screw You" from your ISP here!
Considering these issues & the "fine print", you'll likely need to discuss with your ISP on how to handle your server "request". Some may charge you an extra $5/mo. for this variance in their policy to cover the server's load while others will force you to convert your connection into a "Commercial" connection that allows servers & have the extra bandwidth to better handle servers. Any way you consider, you'll be paying a premium for the right to host a server.
STEP 2: Connect a computer to be your DEDICATED server
Once you get things settled with your ISP, you'll need a computer to serve as your personal web server. While practically any computer with decent computer specs will work. Any computer than can handle Vista or Windows 7 SHOULD be able to handle web serving stuff. However, DO NOT ATTEPT TO USE THE COMPUTER THAT YOU USE ON A DAILY BASIS!!! Unless you're willing to put up with performance drops that'll occur when you have multiple users (including the fucking spam bots) accessing your server, it's just better for your sanity to keep a separate computer for this.
Once you have this computer connected to your network, you'll need to find the LAN IP address (it'll be like 192.168.*.* deal). Just go to Start -> Run & enter "CMD" in the prompt in XP to pull up a DOS prompt. In Vista, hit Start & enter "CMD" in the search field & hit enter. Once you're in the DOS prompt, enter "ipconfig" & it'll give you 3 items, one of them will be your LAN IP address (as it'll be something like 192.168.1.102 or something similar). Jot it down as you'll need it later. Now enter "exit" in the DOS prompt to close it.
Next access your router & look for the "Port Forwarding" option. Once there, enter the LAN IP address for the following ports:
- Port 80 -- Website Server port
- Port 3306 -- MySQL Server port
- Port 23 -- FTP Server port
- Port 25 -- E-mail (POP3) Server port
These are the ports that most website servers use. The "Port Forwarding" option will redirect all requests from others to the proper computer this way.
STEP 3: Install AND COMFIGURE your Website server program
How it's time for the big step! While there's plenty of Website server suites out there, I prefer to go with Apache Friend's XAMPP for your "Master Server" program as it contains pretty much everything you'll need to have a fully functioning webserver.
1) Website Server -- Apache
Apache is a base program as it'll server all your basic needs for website services. It's works without problems as it has php included for the advanced web language... nuff said.
2) Database Server -- MySQL
Unless you want a very static website, where you have to update things manually, you'll need some type of database to store data for dynamic websites. The database server is MySQL as it's fairly free, open source & used by a LOT of websites. While it can be intimidating to manage at the server level, all you really need to know is how to create a blank database for other items (like phpBB) can use.
3) FTP Server -- FileZilla
NOTE: FileZilla MUST run as a network service on the computer to operate!
If you want access stuff on your web server OR give access to others (like friends) for some reason (like hosting a large file your friends want), you'll want an FTP server on hand. While it'll take some time to set up the user accounts, you'll need to do it so you can keep your friends (or unwanted users) from fucking up your website or the computer (for really malicious assholes).
PLEASE NOTE that an FTP server is TOTALLY OPTIONAL as you can completely run your website without having an FTP server & those who are totally paranoid about security will want to pass on this. FTP services are convient for those who don't have physical access to the server, but it can be one way to totally fuck up your computer if you didn't configure it properly & some asshole starts toying around with everything on your computer (by giving them unrestricted access to your C drive).
4) E-mail Server -- Mercury
Mercury is the e-mail server included with XAMPP & primarily configured for POP3 services, which allows your website server to hold the e-mails for the user until they pick them up. If you want to do IMAP services (which allows syncronization between multiple devices), you'll have to read up about it.
Anyway, Mercury allows you to send & receive e-mails through it. Just set up the accounts you'll want & it'll handle it. Right now, you don't have a specific domain name yet... but don't worry about that now as Mercury will roll with the punches.
STEP 4: Pick-up or Buy & Configure your Domain Name
This is the FINAL STEP here as it's what people will enter to access your web server. If you really want to, you could spend the $30 / yr with a DNS server (like Register.com or Go Daddy) for a professional domain name like "www.MyPersonalServer.com" to use with your web server. HOWEVER, for those who aren't willing to spend the big bucks for professional domain name, you could settle for a less professional domain by using DYNDNS.org's redirecting services. With DynDNS, your domain name will be more like "MyServer.dyndns.org" or one of their 30+ domain names to go with. DynDNS provides this redirecting services for FREE as an alternative to providing others with your actual IP address (from your ISP).
If you have a dynamic IP address (one that periodically changes, common with residental connections), you'll most likely will need to use DynDNS's services as they have a utility program that will help keep your site address directed to your web server. I can't be certain if they charge you if you provide your own domain name, but you can check that out at www.dyndns.org.
Commercial Connections usually have a static IP address (one that stays the same all the time... assuming you keep your ISP happy with money) & therefore should not need to use DynDNS's dynamic IP updater.
There you go! You now have your own web server to do whatever the fuck you want with it... as long as it complies with the law & any restrictions your ISP enforces. Once you take care of your ISP, you should have everything ready to go in about an hour or less (depending on your connection speed). While you should have the basics (like an anti-virus program & a firewall, just to keep hackers, assholes & idiots) to prevent any major fuck-ups that could hurt other computers (as some viruses like to spread through networks) on your network, that should be it.
Do as you please with it... just don't go crying to me if you can't figure out how to do something with your server. This is a totally DIY deal! I can't tell how to do every goddamn thing with your webserver & I have no idea (nor the patience) to turn it into the next Facebook, MySpace or YouTube! That's for you to figure out & how to profit from it!
That's all I have for now... It's 2:27 AM CDT & I'm off to bed.