Note: Plum was retired on 2018-04-16. Please see Figgy for current development.
Plum is a Hydra head based on Hyrax, with two types of works:
- ScannedResource: a book or other resource composed of one or more scanned pages
- MultiVolumeWork: a book set, sammelband or other resource composed of multiple ScannedResources
- Drag-and-drop tools for reordering FileSets and editing structure
- Generating IIIF manifests for Collections and Works based on that structure
- Building PDFs of Works based on their IIIF manifests
- Performing OCR with Tesseract
- Simple state-based workflow
- Retrieving external metadata from our finding aids and catalog web services
- Redis
- Start Redis with
redis-server
or if you're on certain Linuxes, you can do this viasudo service redis-server start
.
- Start Redis with
- Kakadu
- On a mac, extract the file and run the pkg installer therein (don't get distracted by the files called kdu_show)
- Tesseract
- Version 3.04 is required. You can install it on Mac OSX with
brew install tesseract --with-all-languages
For Ubuntu you'll have to compile it.
- Version 3.04 is required. You can install it on Mac OSX with
- RabbitMQ (Optional)
- Start with rabbitmq-server
- Used for publishing create/update/delete events for systems such as Pomegranate
After cloning the Plum repository:
- Install dependencies:
bundle install
- Setup the database:
rake db:migrate
- Setup ActiveFedora::Noid minter:
rails g active_fedora:noid:seed
- Create the default admin set:
rake hyrax:default_admin_set:create
- Load the workflows in
config/workflows
:rake hyrax:workflow:load
Run the test suite:
$ rake ci
You may also want to run the Fedora and Solr servers in one window with:
$ rake hydra:test_server
And run the test suite in another window:
$ rake spec
To run the Javascript test suite, run:
$ rake spec:javascript
You can then open the file tmp/jasmine/runner.html
in a browser to run the tests in that browser.
You may need to pass options to allow access to local files, e.g., on MacOSX, you can quit Chrome
and then open it with the Javascript tests:
$ open -a "Google Chrome" tmp/jasmine/runner.html --args --allow-file-access-from-files
- Run the development servers with
rake hydra:server
(or run Rails and Solr/Fedora separately withrails s
andrake server:development
). - Go to http://localhost:3000/users/auth/cas and login with CAS
- $ rake add_admin_role
- Go to http://localhost:3000/admin/workflow_roles and grant workflow roles
- Install Docker Toolbox https://www.docker.com/toolbox
- Only necessary for mac or windows machines. For unix boxes install via
wget -qO- https://get.docker.com/ | sh
- Start a docker VM:
docker-machine start default
- Setup your docker environment:
eval "$(docker-machine env default)"
- Retrieve the loris image:
docker pull lorisimageserver/loris
- Start the container:
docker run --name loris -v /path/to/plum/tmp/derivatives:/usr/local/share/images -d -p 5004:5004 lorisimageserver/loris
- Find the docker IP address with
docker-machine ls
- Export config variable for IIIF url:
export PLUM_IIIF_URL="http://<docker-ip>:5004"
- Images should be available at
http://<docker-ip>:5004/
based on the FileSet id. e.g., if your docker IP address is 192.168.99.100, the full view of FileSet70795765b
would be at http://192.168.99.100:5004/70%2F79%2F%2F57%2F65%2Fb-intermediate_file.jp2/full/full/0/default.jpg