web craftmanship



  1. The archive is
  2. Add these lines to your /etc/apt/sources.list
    deb unstable/
    deb-src unstable/
  3. Add my GPG key to the apt GnuPG keyring:
    apt-key adv --recv-keys --keyserver add 4D722217
  4. aptitude update
  5. aptitude install nginx

What's this?

This is a debian repository I maintain for:

These packages are built for debian testing or unstable (sid).

Even if you run the stable release of Debian you can use these packages if you use APT Pinning.

With apt pinning you can mix & match packages from several releases. Here's what I have in my /etc/apt/preferences

Package: *
Pin: release a=lenny-backports
Pin-Priority: 300

Package: *
Pin: release a=testing
Pin-Priority: 200

Package: *
Pin: release a=unstable
Pin-Priority: 100

Package: *
Pin: release a=experimental
Pin-Priority: 50

As you can see I mix packages from all the releases. This way I have a stable machine that always gets the latest updates for the installed packages I deem important enough.

Then you need to add the relevant mirrors to your /etc/sources.list.

Installing a package from unstable: aptitude -t unstable install you can use apt-get instead of aptitude.

The same applies for testing or experimental, replacing the value of the keyword argument -t.


I provide the latest releases of the modern high-performance web server Nginx.

There are binary packages for i386 — Intel x86 — and amd64 — AMD 64 bits.

Contrary to rote popular "enterprise computing" belief, in the web the more recent version of a software is also generally the more safe.

I use nginx for running Drupal and other applications. My configurations for Drupal and Piwik are included in the /usr/share/doc/nginx/examples directory.

This version has the Upload Progress module compiled in, as well as the Upstream Fair module providing a fair upstream load balancing algorithm.

This version has no support for mail proxying, Server Side Includes, UWSGI, SCGI and WebDAV.

If you want to use any of these modules then you must get the source and enable them in the debian/rules file.

I make available the source files from which you can rebuild the debian package. For that do:

  1. Getting the sources:
    apt-get -t unstable -f -u source nginx
  2. Getting the dependencies:
    apt-get -t unstable -f -u build-dep nginx
  3. Building the package the "sloppy" way:
    cd nginx-0.x.y; fakeroot debian/rules binary

You should now have on the directory where you have the nginx source a .deb for your machine architecture.


Magit is a emacs mode for interacting with the git SCM.

I mantain a github fork of the "official" repo on github. This fork differs from the original repo only in the extent that a debian build setup for creating the package is incorporated. Basically it's a debianization of the official version. The official debian version available on unstable (sid) lags considerably from the current development version.


LML2 is another HTML in Lisp system. It descends from Franz Inc htmlgen.

I've forked it to add HTML5 element support. The repository is on github.

I built this page with it.


What about Ubuntu?

I don't know. The distribution release policy in Ubuntu is a mere marketing ploy. What's unstable? What's stable? What's testing? You can try to install these packages. I presume it's safe. If you prefer to use a repository that follows the "Ubuntu way" then try Brian Mercer's launchpad PPA for Nginx.