Running an egg mirror

Running your own egg mirror is quite simple. All you need is a Web server that will run CGIs, and the ability to run cron jobs, on a Unix shell account.

Install the henrietta and henrietta-cache eggs.

Create a directory to store the cache in. Let's call it ~chicken/cache.

Create a cron job to run the following daily:

henrietta-cache -c ~chicken/cache -e https://anonymous@code.call-cc.org/svn/chicken-eggs/release/4/egg-locations

Run it once by hand to initially populate the cache (this will take a while the first time, but subsequent runs are much faster, as it only processes updated or added eggs).

That creates the cache directory. Now we need to set up henrietta itself, the CGI that serves eggs from the cache.

Place the following into henrietta.cgi somewhere your Web server will process it as a CGI:

#!/bin/sh

export EGG_REPOSITORY=~chicken/cache
export LOGFILE=~chicken/henrietta-cache.log

exec henrietta -l "$EGG_REPOSITORY" -t local 2>>"$LOGFILE"

Make sure to mark it executable!

You will now be able to install eggs from your mirror, with a command like:

chicken-install -l http://chicken-mirror.example.com/henrietta.cgi -t http <name of egg>

If you would like to help the Chicken community by offering your mirror up for public usage, please contact the Chicken core team. Thanks!