wingolog

original

Original is a web gallery designed with tags in mind. There are two parts: one that synchronizes all or part of your f-spot photo collection to the web, and one that runs on your web server to show your photos. Take a look at my photo gallery for an idea of what kind of gallery it is.

Note that this is a fork of Jakub Steiner's Original -- see the About section for more details.

Getting original

I maintain my version of Original in bazaar, a distributed version control system. You can fetch my latest code via running bzr get //wingolog.org/bzr/original in your terminal.

Installation on your web server

Installation is pretty easy -- just copy the entire www/ directory to your web server where you want your gallery to be. Note that copying www/* won't work, as there is an .htaccess file there.

You will need mod_python, pysqlite, and the python imaging library (PIL) installed on your web server. The Debian 4.0 packages I have installed are libapache2-mod-python, python-pysqlite2, and python-imaging.

Uploading your photos

The part that runs on your computer is one script, original-sync-from-f-spot, which you can find in the sync/ directory.

The script will, by default, upload all photos from your f-spot collection that have tags attached, but not photos with the Hidden tag. This behavior can be changed of course -- pass `--help' to the script on the command line for documentation on its many parameters.

original-sync-from-f-spot needs python 2.4 to run, with the pysqlite and python-gnome2-desktop packages installed.

The first time you run the script, it will require you to specify an output URL. This URL can be anything that gnome-vfs can write to, for example sftp://example.com/var/www/mysite/photos/. After the first run it will remember the URL.

Note that at present, original-sync-from-f-spot needs a development version of f-spot. Currently, any version between 24 October 2007 and the present (22 December 2007) should work. original-sync-from-f-spot will check when it runs to make sure that f-spot's database is in the expected format.

About

I wrote these scripts because I wanted to experiment with tags as a way of presenting photos on the web. I also wanted to manage all of my photos with Larry Ewing's excellent f-spot instead of some clunky web interface. The other desire was to have someone else worry about the exact CSS aesthetics, which meant reusing code from an existing project.

I chose Jakub Steiner's Original as the model, due to its aesthetics. My version of Original just takes the f-spot database, adds a table to keep track of which photos have been uploaded, and uploads the whole database to the web. The server side generates HTML that structurally matches what Jakub did with his version. In that manner we can actually share the same style files.