When working on web projects it’s always best to build your projects in a live server environment, but not on a live server or domain. For a small studio, keeping two servers running for projects (one server live, one for development) can get rather costly, and besides… who has time to administer all that hardware? I’m admittedly a nerd, but I don’t want to spend all my time doing IT work – I’d rather design. So how do you set up a development environment that’s reliable, easy to use, and cost effective – and do it all by yourself? I’m about to show you how to setup your own server at home. and to do it for under $100.00.
Right out of the gate, I’m going to state that I’m a die-hard Mac fan (as most designers are). I’m comfortable working on PC’s and a few flavors of Linux, but when it comes to day-to-day workflow Mac is how I roll. This blogpost is written with other Mac users in mind.
First thing you need for this project – a Mac. Doesn’t necessarily have to be Intel-based, you can use any Mac you have but it’s got to at least be fairly recent. For my server, I decided to use the 1.42 GHz PowerPc G4 Mac Mini with 1 gb ram I have in my conference room… it basically sits in my conference room idle except for making client presentations, so why not get a little more use out of the little guy? At the time of this writing, this Mac is running the most current Mac operating system 10.5.6.
Your Mac needs to be on a dedicated IP address and located outside of your firewall. If you have either a Comcast business class cable modem or an AT&T business class DSL modem, you should have access to the use of five dedicated IP addresses (one will be taken up by your modem, the other four are yours to do with what you want). If you do NOT have a dedicated IP address, you can use a dynamic one – but you will have to use a paid DNS service like DynDNS or EasyDNS. I personally have never used either of these services, I have a static IP from my service provider that I use on my development server.
Next you need to route the DNS for that IP address to a URL (or subdomain of your URL), so your sites are visible to the internet. My suggestion here is to get one dedicated URL that you will use only for development, and point that URL to your dedicated IP address (in this case, say it’s www.mydevelopmentserver.com). Then you can set the DNS records up for that URL with a Wildcard DNS Record (looks like this: *.mydevelopmentserver.com), so you don’t have to adjust DNS records & wait for propagation every time you want to set up a new site. Using wildcard DNS, you can also have an unlimited amount of subdomains at your disposal, which is extremely convenient. You can manage the DNS and purchase the dedicated URL from GoDaddy for $8.00.
You’ll also need to download and install MAMP Pro. MAMP stands for Macintosh, Apache, MySQL and PHP. It also comes with PHPMyAdmin for setting up and administering all your databases and database users. Make sure you download the Users Manual as well, you’ll need it for configuring your server and your sites, as well as setting your permissions.
Using MAMP Pro, you can set up your sites locally using the GUI in about two minutes (if you use Wildcard DNS as I described above, you set up as newsite.mydevelopmentserver.com). Set up your databases and database users using PHPMyAdmin, and then locally install whatever you need to install for the project at hand. MAMP Pro comes with a two week free trial, after which you have to buy a license for $56.00.
Now… if you are only going to be developing from the same office where your server is, you’re pretty much done – you can upload files locally using good old fashioned sneakernet. However, these days who works like that? What if you need to bring in a freelancer, or are working with a team on a project? You need to be able to upload files to your server from anywhere, just like on your production server. Hardcore peeps can use SSH to upload files (which is free), but not everyone is comfortable doing that. In that case, you’ll want to download and install PureFTPd Manager, which puts a very user friendly GUI on a BSD FTP server that runs very nicely on OSX. PureFTPd Manager is free, but donations thru PayPal are encouraged.
And speaking of working remotely, what if you need to set up a brand new project while you are out of the office? You’ll need a way to access the MAMP interface from out of the office – but who in their right mind is going to pay $300 for Apple’s Remote Desktop? Well, luckily there is an alternative – Devon Technologies Desktop Transporter, which does the exact same thing as Remote Desktop – for $29.00. Note that there are other free alternatives for remote access (one I have used with success is Chicken of the VNC, but I prefer Desktop Transporter). Desktop Transporter also comes with a free 30 day trial, so you can test drive before you commit.
Of course, make sure that you keep this server backed up at all times. You’ve spent valuable time building your development environment, and the sites you are working on need to be protected. Use Apple’s Time Machine (it’s free, and built right into the operating system) to back up your server regularly.
So, where are we on the cost front?
Total Cost: $ 93.00
There you have it – your very own development server for under a hundred bucks!