Skip to main content Help Control Panel

Rod Morison Software —  Technotes

Home «   Linux «   Sysadmin «  

The Internet Server Project - Part I - Intro

Back in '99 I was determined to get out of semiconductor CAD software and into this wizzy Internet stuff. Probably the smartest thing I did back then was to build (and rebuild and rebuild) a web+email server for my own domain.

Can I Really Build My Own Server?

What you'll need is time, patience and persistence: don't give up on any roadblock until you've drilled down and solved it, or Googled someone else's solution that works.

TBH, you should ideally have a basic understanding of building open source software from source (mostly following README or INSTALL instructions), TCP/IP networking and operating systems. It's probably enough to have built a C/C++ package from scratch, written few lines of shell/perl/python/php script and installed+configured an operating system. A degree in computer science is decidedly not needed here; practical, hands on experience is what this project is about.

As for TCP/IP networking, if you don't know much about it, you should. Anyone who takes a car to a shop and doesn't know what a spark plug does in the engine, even if it's only in theory, is at a big disadvantage. I highly recommend one of the best technical books of the last few decades, TCP/IP Illustrated, Volume 1. (Or, read it online on the Safari Books Online site.

Why Build a Server!?

Build a server!? What's up with that? Why, and what's that going to do for me? Well, if you get into it and do it right (sometimes on the second pass) you'll be running an honest-to-god 24/7 internet email and web server with all the technical pieces your ISP (Internet Service Provider runs, albeit on a much smaller scale. Specifically, you'll have experience (perhaps at a professional level) with: Once again, these skills have tangible professional value, whether you're a software developer, a network engineer, or even a sharp, computer savvy non-engineering person. They'll stretch your problem solving skills, increase your web savvy-ness, and be a stepping stone to more advance projects and technologies.

Professional Skills Development Note: I fundamentally agree with what Scott Adams has to say and especially what Joel has to say: Breadth of skills is essential to progressing beyond the Sr Engineer level. Joel especially likes to hammer on writing skills. Having read more than a few badly written open source software docs, I'm a big fan of great technical writing like the Steven's TCP/IP book mentioned above.

You may be thinking, "Yeah, ok, but I'm just going to get some books on DNS, SOAP, AJAX, ..., and work through those, that's all the professional development I need." If you can really do that, and have the knowledge stick, more power to you. As for me, I need to build something tangible that people can really use, that forces me to do it right and do it all the way.

A note on your time commitment: If your system becomes a permanent www or email operation, it will require some care and feeding. Before fully committing to running the family's (or a small business's) mail server and web proxy, be sure you have the time for production commitment. If you set it up right, it really should be efficient, but it will still require some care and feeding.

Interested? Next Page

Stay tuned
recent comments
podcasted files
AddThis.com