Going green with a Mac Mini

There have been rumors flying about for a long time that the Mac Mini was going to be discontinued by Apple. Now it’s looking like it might be here for at least a while longer, according to AppleInsider, who report that a new version is in the works.

I have been working on an elaborate post about my uses of the Mac Mini for a while, but now I’m deciding to just go ahead and blurt it out, in short and sweet form.

I have a “lab” of sorts where I test a lot of things on different OS platforms. Years ago, it consisted of several basic “tower” PCs running various versions of Linux and Windows. Those took up a lot of space, consumed a lot of power, and made a lot of heat. A few years ago I downsized to Mini-ITX platforms to save space and heat/energy.

Well a few months ago, I took this even further and configured a Mac Mini for the role:

Headless Mac Mini VMWARE Fusion server

I expected this to take quite a fair bit of work and time. It turns out I got all the OSs installed in virtual machines and all the software running in the VMs in just a few hours. I was impressed with both Mac OS X 10.5 and VMWARE. Now I’ve gone from five Mini ITX PC boxes, to one Mac Mini running several virtual machines under VMWARE Fusion. And that still leaves the Mac Mini itself available for whatever I wish. The box is running Mac OS X 10.5 Leopard, which now has better support for headless operation. The Mac Mini has no keyboard, mouse, or monitor attached, and lives happily tucked away in a closet.

The Mac Mini may not be all that green on paper, but it is far greener than the five systems it’s replacing. There is way less heat, and MUCH less power being consumed and it’s actually more convenient and more usable too.

In terms of space savings, it’s tremendous. Even with the smallish Mini ITX machines, we were still talking about something the size of a trash compactor or a small fridge. Whereas the Mac Mini would easily fit inside a single one of the Mini ITX boxes, with room to spare.

The VMWARE virtual machines are running some rather treacherous apps too and OS variants, and it all works. Apple has created more than a nifty desktop OS with Mac OS X. It turns out to be a pretty darned capable headless server virtualization platform too. Here’s a quick rundown of some of the tricks involved:

  • You’ll need to attach the Mac Mini to a keyboard, mouse, and display to get it set up the first time. Be sure to uncheck the “Open Bluetooth Setup Assistant at startup when no input device is present” option in the Bluetooth System Preferences, or every time your headless Mac boots it’s going to complain that it doesn’t have a keyboard or mouse.
  • Because this machine is a 24/7 server, I turn off Sleep in the Energy Saver control panel.
  • Add any VMWARE virtual machines that you want to start automatically when the Mac boots to the “System Preferences > Accounts > username > Login Items” for the account and set that account to “Automatically log in” at boot (under “System Preferences > Accounts > Login Options > Automatically log in as:”).
  • I run the Vine Server VNC server on the Mac Mini to enable any VNC client to remotely view or control the machine. This must also be added to the “Login Items” so it starts automatically when the machine boots.
  • I use Chicken of the VNC (and ssh) to remotely control the Mac Mini from other Macs. Linux or Windows VNC clients can also be used to remotely control the Mac Mini and that works fine too (it’s weird to see a Mac OS GUI on Windows).

While I was at it, in the native OS X system of the Mac Mini, I activated the Apache 2 install that comes with Mac OS X 10.5 along with MySQL server and a WordPress install for good measure.

This all works very well. The only issue so far has been that some major OS updates kill the “headless” operation here because they pop up a dialog during the boot, BEFORE the user is logged in and therefore BEFORE the Vine VNC server is started, meaning no remote access. This sucks because in those cases I have to hook up a monitor/keyboard/mouse just to click ‘ok’ to let the update finish and let the machine reboot. This has only happened with one update so far, so it is an annoyance I can live with, but it would be nice if the mac update process eventually just timed out and completed the update unattended.

Update: July 2011. Vine VNC server is no longer needed and I simply use the “screen sharing” that is native to Snow Leopard now. This has the added benefit that Mac OS X updates can be done remotely now much easier. Also, I have abandoned VMWare due to the cost of updating all the time and simply use the free VirtualBox now. Unfortunately there is no easy way to automatically start the VirtualBox VM containers at boot – in my case, this has not been a major issue, but it could be a problem in a datacenter server type environment.