Carlsbad Cubes Wolf Paulus

mac-osx

Mac Mini, the perfect Project Automation Server
By Wolf Paulus <wolf@wolfpaulus.com>

Posted Thursday, May 26th, 2005

So I couldn't resist and shortly after Apple had lowered the price for memory and hard drive upgrades just a bit I put my order in. I bought the 1.25GHz Mac Mini configuration with memory and hard drive capacity doubled. And against the current trend, I'm not going to use the Mini as a domestic media server but as a development and project automation server instead.

The Mini came with OSX 10.3 pre-installed - still the 10.4 Tiger Upgrade DVD was part of the package and a clean install took approximately 40 minutes. Ever since the OS install, the Mini runs pretty much "headless". SSH and once in a while ARD (Apple Remote Desktop) and Chicken of the VNC client make this easily possible.



SubVersion on the Mac Mini (OS X 10.4.1)
The 1st step of converting the Mini into a development server of course is to deploy SubVersion. While working at home, I want to access the repositories straightforward through port 3690, which would require having some kind of daemon running (more on that a little further down).
From outside the local-area-network however, I would rather tunnel-in through SSH and not open 3690 on the Firewall.

Currently only SSH-Port 22 gets forwarded to the Mini.

Installing Martin Ott's Subversion (1.2.0 RC4) distribution again is pretty straightforward. It installs into /usr/local/bin and requires you only to extend your PATH variable by that location. I performed both steps (installation and PATH update) on both Macs, the Mac Mini and the G5, which is suppose to become a Subversion client.

Last login: Mon May 23 19:45:15 on console
Welcome to Darwin!
G5:~ wolf$ ssh wolf@mini
Password:
Last login: Mon May 23 23:06:37 2005
Welcome to Darwin!

Mini:/usr/local wolf$ svn --version
svn, version 1.2.0 (Release Candidate 4)
  compiled May 13 2005, 10:29:30

Copyright (C) 2000-2005 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).


After creating a repository, which could be done like this:

Mini:/usr/local wolf$ sudo mkdir /usr/local/svn
Mini:/usr/local wolf$ sudo chown wolf:wolf /usr/local/svn
Mini:/usr/local wolf$ svnadmin create /usr/local/svn

Mini:/usr/local wolf$ mkdir /tmp/personal
Mini:/usr/local wolf$ mkdir /tmp/personal/branches
Mini:/usr/local wolf$ mkdir /tmp/personal/tags
Mini:/usr/local wolf$ mkdir /tmp/personal/trunk

Mini:/usr/local wolf$ svn import /tmp/personal file:///usr/local/svn -m "initial import"

Adding /tmp/personal/trunk
Adding /tmp/personal/branches
Adding /tmp/personal/tags

Committed revision 1.

Mini:/usr/local wolf$
Mini:/usr/local wolf$ rm -r /tmp/personal



The server could be started like this:
Mini:~ wolf$ svnserve -d -r /usr/local/svn

However, this would require that I have to start svnserve everytime I need to reboot the Mini, which should not happen too often but still.
Since 10.4 Apple changed the way we are suppose to launch daemons. Google for launchd and you will find out what I mean.Anyway, you basically just need to put a plist file into the /Library/LaunchDaemons folder and fortunately, Marc Pacheco had one that came pretty close to what I needed to do.



Now the Mini listens on port 3690 for SVN request and on port 22 for SSH.
BTW, Dominique Peretti at lachoseinteractive.net in Paris France has an excellent SubVersion client GUI for OSX: svnX





Disclosure: This blog is written and edited by me, it contains my words and my opinions only, and does not contain any content which might present a conflict of interest.
I am not compensated to provide opinion on products, services, websites and various other topics. This blog does not accept any form of cash advertising, sponsorship, or paid topic insertions. However, I will and do accept and keep free products, services, and other forms of compensation from companies and organizations. All advertising is in the form of advertisements generated by a third party ad network and identified as such.
I will only endorse products or services that I believe, based on my expertise, are worthy of such endorsement. Any product claim, statistic, quote or other representation about a product or service should be verified with the manufacturer or provider.

Published on: Thursday, May 26th, 2005  •  Category: [mac-osx]

Article URL : http://wolfpaulus.com/journal/mac-osx/minisvn.html