Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'd like to run the Fossil SCM as a service that is called when needed on my Mac Mini Server. How should I go about configuring this?

share|improve this question
Yes, I answered my own question, but I thought this might save someone else some work looking for the answers. – Stephen Dec 21 '11 at 15:51
could someone add fossil-scm as a tag - if you feel it is appropriate - I don't have the rep. – Stephen Dec 21 '11 at 15:52

Getting the Fossil SCM setup as a server on Mac OS X.

This works on 10.7, but should work back to 10.4 AFAIK.


  • fossil binary somewhere on your system (I used ~/bin/fossil )
  • a fossil repository (or repositories) in a folder (I used ~/fossil-repository )

The steps:

  • put the org.fossil-scm.service.plist file(below) in /Library/LaunchDaemons
  • change references to '/Users/spdegabrielle/'( ~/ ) to your own path
  • open Terminal and type the following:

    sudo launchctl unload /Library/LaunchDaemons/org.fossil-scm.service.plist

  • open your browser to http://localhost:8081/reponame (I used 'projects' the name of my main repository as the default repository)

For more info, check Creating Launch Daemons and Agents.


Some explanation as to what is going on:

  • /Library/LaunchDaemons/ is where the .plist files defining 'User Daemons' that are launched as system startup are kept. Some other useful locations: ~/Library/LaunchAgents for each user, and /Library/LaunchAgents for all users.

  • KeepAlive 
Don't restart the service; this way of using fossil works by starting it in response to a request on port 8081.

  • Label
names the service, so is can be started sudo launchctl load and stopped using sudo launchctl load

  • ProgramArguments 
 projects /Users/spdegabrielle/fossil-repository 
is the launchd way of saying 
fossil http --localauth --notfound projects /Users/spdegabrielle/fossil-repository

The meanings of the arguments are as follows:

  • fossil http action the request coming from port 8081(in this case), provide the response and quit. (see fossil help http)

  • --localauth auto-sign-in if you are accessing fossil from your server directly with or http://localhost:8081/ (see fossil help http)

  • --notfound projects sets the default repository when specifying the repository location as a folder (next) rather than as a specific repository

  • /Users/spdegabrielle/fossil-repository is the respository location (--notfound projects sets the default)

  • RunAtLoad - Don't run it on load - it will be run on demand

  • inetdCompatibility causes launchd will behave like inetd for the launched program

share|improve this answer
I'd like a better way on including the plist file? – Stephen Dec 21 '11 at 15:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.