image database, album, and gallery


PhotoFS is a web-based photo album or image gallery, based on the files-as-directories and attributes-as-files concepts at the core of the ReiserFS V4 filesystem. It does not require reiser4, but is much more efficient on that system than on others.

It does many of the same things as other web galleries, at least as far as the basics go. What makes it different is its use of the filesystem instead of a database. It allows you to use regular unix tools to access your photo collection. Another primary feature is the use of multiple categories per image, so a picture of five people can be in five people's categories.

It also supports unlimited filetypes, and you can assign any image you like to visually represent each file. (default icons are provided or generated too) Extensive access controls are provided for the web interface, to allow different people to see different files.


  • Hierarchic categories
  • Multiple categories per photo, plus "also in..." feature
  • All data stored in the filesystem
    • Browsable both on the web and from the command line
    • Uses standard filesystem tools to access records
    • Easy backup and replication with tar, rsync, etc...
    • Uses no special file formats; data is stored in many small files instead of a database or several large files.
    • works best with reiserfs v4, but is compatible with any filesystem
  • Insert many photos at once from the command line
  • Clean URLs; simple directory structure and no huge ?argument=foo lists
  • Secure web interface
    • Access control for web use: per user, per file, per category
    • Non-public files cannot be viewed by the wrong users, even if those users know where to look.
    • Restricted files are completely invisible to anyone not authorized to view them.
  • Metadata:
    • Description: Yes. HTML allowed. Can be edited with any text editor.
    • Extended Description: Yes.
    • Title: No. Use the description or filename.
    • Keywords: No. (irrelevant; use the category system)
    • People: No. (irrelevant; use the category system)
    • Event: No. (irrelevant; use the category system)
    • Date: Yes, for now. May be removed.
    • Photographer: No, but may be added.
  • No SQL database required
  • Fast! Handles many, many thousands of files easily
  • Auto thumbnail creation and caching (manual creation supported too)
  • Auto-creates medium-sized previews when appropriate (manual creation supported too)
  • Holds any type of file, not just images
  • Integrates easily into php template systems with header/footer hooks

Screenshots / Demo Site

None yet.

However, here are some stats from my personal photo repository:

PhotoFS stats:
files in DB: 7692
category entries: 19143 (2.49 categories / file)
categories: 1149 (16.66 entries / category)
total records: 112038 (14.57 records / file)
space used: 3877MiB (516KiB / file)


Snapshots from subversion repository:
Available here: files



You will need the following tools:
  • Python (may need V2.x or newer, but may work with 1.5)
  • Apache (any current version should do)
    • mod_rewrite
  • PHP4 4.2 or newer
  • ImageMagick (provides "convert" for thumbails)
The following are recommended but not required:
  • ReiserFS
  • jpegtran (provides lossless jpeg rotation)
  • GNU bc calculator (to run bin/*.bc scripts)
  • pfm for browsing and insertion

Change Log

The changelog is actually the subversion log, but should be useful:
Last modified: January 11, 2005 @ 7:38 MST
Copyright (C) 1996-2024 Selene ToyKeeper