An application to automate populating a Private LOCKSS Network.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


LOCKSS-O-Matic helps automate the ingestion of content into a Private LOCKSS Network (PLN). It also monitors the PLN to ensure that all member boxes are online and operating normally.

The LOCKSS-O-Matic web application acts as the "admin server" for the PLN, which means that the LOCKSS boxes in the network use it as the source for the configuration files that govern what content they harvest and preserve. LOCKSS-O-Matic derives these configuration files from its interaction with other applications (known as content providers) or from humans registering content to be preserved using a set of in-browser tools. LOCKSS-O-Matic implements the SWORD protocol to communicate with content providers. The first two content providers will be Archivematica and Open Journal Systems but LOCKSS-O-Matic can be used with any content management system or other type of application that produces content to be preserved in a LOCKSS network.


LOCKSS-O-Matic does not deploy LOCKSS networks - currently that must be done by system administrators. However, LOCKSS-O-Matic will provide tools to generate configuration files for the boxes in the network. Once a network is operational, getting content into it will be as easy as registering a list of URLs to harvest, provided they are compatible with the included LOCKSS plugins (which, initially, means that the files are compressed archives such as ZIP, 7z, or tgz formats). types of content will be possible with the appropraite LOCKSS plugins. Archivematica will include a plugin to enable integration with LOCKSS-O-Matic.


LOCKSS-O-Matic is being developed primarily at Simon Fraser University Library. Development has already begun and early versions of LOCKSS-O-Matic should be available for testing in fall of 2015. Details are available on the project wiki.

If you would like to participate in testing or development, please contact mjordan -


The user bundle has several external dependencies:

Both of these are installed via composer update and shouldn't require any configuration after the update. Once they are installed, php app/console doctrine:schema:update --force can be used to create the user and ACL tables in the database.

There are sample users which can be added to the database:

    php app/console doctrine:fixtures:load --append --fixtures=src/LOCKSSOMatic/UserBundle/DataFixtures/ORM

This will not install any ACL data, as it would require fore-knowledge of the entities in the database. Note the use of --append to prevent any data loss. After installing the sample users, visit /login to login as with password supersecret.

The UserBundle also comes with some tests for use with PHPUnit.

phpunit -c app src/LOCKSSOMatic/UserBundle/Tests

will run them.