Some friends of mine were building a library for an elementary school and what library is complete without a nifty electronic catalog? I set out looking for free catalog software and found the ideal system: A free web application that could be installed and run on pretty much any junky old computer and accessed locally (or publicly, if you wish).
I set this up with the purpose of a school library catalog in mind, built from scratch from salvaged parts, so my instructions are for exactly that. However, this system can be used for many other things, such as a home media library, or equipment checkout system, and can be built in many ways as long as the heart of the system (OpenBiblio) is there.
This procedure is for someone at least somewhat familiar with Linux, Apache, MySQL, and PHP (or “LAMP”). You should be familiar enough with the system to do basic application installations and take precautions such as disabling directory listing. If that’s not you, find someone who is.

Features
- Basic mixed media catalog (books, CDs, DVDs, etc), with bibliographic info and search
- Open public access catalog (OPAC)
- Easy barcode and call number label printing (on a standard printer)
- Circulation system, aka checkout system with database of library patrons, fines, book statuses, etc.
- Ability to lookup bibliographic information when inserting books (optional)
Sounds good? Of course it does. Let’s get crackin’…
Get a computer
The software will run on pretty much any junk PC, since the software really isn’t resource-intensive. I did this setup on a PIII 500MHz machine with 256MB of RAM and it ran just fine, even with 10-15 people simultaneously cataloging on it. Ask your friends for hand-me-downs, or worst case, buy something for uber cheap off Craigslist. You can also install everything on your current computer if you want to run an Apache/MySQL server on it (assuming you know what you’re doing).
Install LAMP
LAMP stands for Linux, Apache, MySQL, and PHP.
Follow the LAMP Installation Walkthrough (using Ubuntu, a popular distribution of Linux recommended for beginners)
I recommend also installing PHPMyAdmin (listed as an optional step after setting the MySQL password).
Install OpenBiblio
OpenBiblio is the heart of the system, the “library software”, if you will. It’s a web application that runs on PHP/MySQL, and it has a quick and easy installation, very similar to WordPress.
Download OpenBiblio
Login to MySQL and follow the OpenBiblio installations instructions (install_instructions.html), beginning from step 5.
Install Lookup Addon (Optional)
The Lookup addon adds functionality to OpenBiblio by allowing you to lookup books from the Library of Congress database, or other library databases, and downloading their MARC (bibliographic) information.
Download Lookup if you know Linux pretty well and want bibliographic lookup capability: http://www.flos-inc.com/projects/ (”download Lookup files”). Refer to “lookup_install.txt” for installation instructions.
For step 2, your OpenBiblio MySQL data directory is most likely under “/var/lib/mysql/”. For example, if you named your OpenBiblio MySQL database “OpenBiblio” and you’re in the Lookup installation directory, you’d type “sudo mv cutter.* /var/lib/mysql/OpenBiblio“.
Install Z39.50 Search (part of Lookup installation)
This is a protocol required by the Lookup addon. This is where you need Linux know-how… something I don’t have. At this point, I don’t have much idea what’s going on, but try entering the commands and hope it somehow works. :oP :o)
- Install PHP PEAR: sudo apt-get install php-pear
- Install phpize: sudo apt-get install php5-dev
- Download, uncompress, build, and install YAZ:
cd /tmp
wget http://ftp.indexdata.dk/pub/yaz/yaz-3.0.14.tar.gz
tar -zxvf yaz-3.0.14.tar.gz
cd yaz-3.0.14
./configure
make
sudo make install
sudo pecl install yaz
- Edit php.ini: Add the line “extension=yaz.so” to the end of the file. (sudo gedit /etc/php5/apache2/php.ini)
- Restart Apache: sudo etc/init.d/apache2 restart
- Run a phpinfo() to verify there is a section on yaz (”YAZ Support: enabled”). If you don’t know what that means, just try the “Z39.50 Search” that should appear in OpenBiblio now and see if it works.


Results, woohoo!
Get a Barcode Scanner!! :oD
No library checkout system is complete without a barcode scanner. This may be the only purchase you need to make. Typical “gun”-looking scanners cost ~$100, but you can get a contact/swipey scanner for ~$15 (including shipping). The CueCat barcode scanner (pictured below) is available on eBay or www.cuecats.com. Make sure you purchase a modified version, or search for the simple mod instructions on Google. The CueCat is available in PS2 and USB.

Using and Maintaining the System
If you made it this far, I assume you can poke around and figure out how everything works. As for maintenance, I recommend periodically backing up the database by exporting it using PHPMyAdmin.
Here’s some documentation for your own use or for you to distribute. Please give credit where credit is due, and if you believe you can make improvements, please do so and drop me a note. :o)
Instructions for Use and Maintenance of Library Electronic Catalog (PDF)