Valkyrie-based digital repository backend.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Updating the build environment image to use Ruby 2.4.5 and Postgres 9.6 Nov 19, 2018
app Authorized Link points to viewer (#2232) Nov 20, 2018
bin Fixing the Simple Tiles installation script for CI, and related Ruboc… Mar 21, 2018
config Revert "WIP: Adding monograms with attached FileSets" (#2231) Nov 20, 2018
db Updating the build environment image to use Ruby 2.4.5 and Postgres 9.6 Nov 19, 2018
lib Merge pull request #1483 from pulibrary/1251-remove-plum-refs Oct 2, 2018
public Add non-embedded Viewer page. (#2160) Nov 14, 2018
solr Updating Solr config from pul_solr Nov 8, 2018
spec Authorized Link points to viewer (#2232) Nov 20, 2018
staged_files Browse Everything (#13) Jul 28, 2017
vendor/assets Vendor rails-assets. Jul 6, 2018
.babelrc Vue File Manager (#700) Dec 21, 2017
.ctags Initial commit. Jul 24, 2017
.gitignore Merge pull request #2035 from pulibrary/audio_derivatives Oct 30, 2018
.postcssrc.yml Vue File Manager (#700) Dec 21, 2017
.rspec Initial commit. Jul 24, 2017
.rubocop.yml Updating the token authorization support to be exclusive to Playlists; Nov 19, 2018
.solr_wrapper
BROWSE_EVERYTHING.md Integrates Google Drive support as a browse-everything provider Mar 20, 2018
Capfile
Gemfile Update rack to fix security vulnerabilities Nov 15, 2018
Gemfile.lock Update rack to fix security vulnerabilities Nov 15, 2018
LICENSE
Procfile Updating Foreman config to run solr Nov 19, 2018
README.md adds logo and updates description for Browserstack open source lincen… Sep 13, 2018
Rakefile
browserslist Initial commit. Jul 24, 2017
browserstack-logo.svg adds logo and updates description for Browserstack open source lincen… Sep 13, 2018
config.ru Enforce double quote for string literals May 14, 2018
package.json
test-compress.sh Separate sammelband and mvw in data seeder, fixes #970 Mar 28, 2018

README.md

Figgy

A digital repository application in use at Princeton University Library for storing and managing digital representations of manuscripts, ephemera, vector, and raster data for export into a variety of front-end displays.

CircleCI Coverage Status Browserstack

Dependencies

  • Ruby
  • Node v.8.2.1
  • Java (to run Solr server)
  • Postgres (for OSX dev systems, install via homebrew)
  • Redis
    • Start Redis with redis-server or if you're on certain Linuxes, you can do this via sudo service redis-server start.
  • ImageMagick
    • On a mac, do brew install imagemagick --with-little-cms2 --with-openjpeg
  • Kakadu
    • On a mac, extract the file and run the pkg installer therein (don't get distracted by the files called kdu_show)
  • RabbitMQ (Optional)
    • Start with rabbitmq-server
    • Used for publishing create/update/delete events for systems such as Pomegranate
  • GDAL
    • You can install it on Mac OSX with brew install gdal.
    • On Ubuntu, use sudo apt-get install gdal-bin.
  • Tesseract
    • Version 3.04 is on the servers; homebrew installs 3.05: brew install tesseract --with-all-languages
    • For Ubuntu you'll have to compile it.
  • MediaInfo
    • You can install it on Mac OSX with brew install mediainfo.
    • On Ubuntu, use sudo apt-get install mediainfo.

Simple Tiles

Figgy requires the image generation library Simple Tiles.

Mac OS X:

  • Install via Homebrew: brew install simple-tiles

Linux:

  • Install dependencies:

    apt-get install gdal-bin libgdal-dev libcairo2-dev libpango1.0-dev
    
  • Compile:

    git clone git@github.com:propublica/simple-tiles.git
    cd simple-tiles
    ./configure
    make && make install
    
    • Python:

      Should you receive the following error during the installation...

      TypeError: unsupported operand type(s) for +: 'dict_items' and 'list' make: *** [install] Error 2
      

      ...please know that you must downgrade to the latest stable release of Python 2.x.

Initial Setup

git clone https://github.com/pulibrary/figgy.git
cd figgy
bundle install
npm install

Remember you'll need to run bundle install and npm install on an ongoing basis as dependencies are updated.

Setup server

  1. For test:
    • RAILS_ENV=test rake db:setup
    • rake figgy:test
    • In a separate terminal: bundle exec rspec
  2. For development:

Load sample development data

  1. Log in to your development instance using your princeton credentials; this creates your user in figgy's db.
  2. Start sidekiq (see below)
  3. rails db:seed # pipe through grep -v WARN to ignore log warnings about the rabbitmq port

Background workers

Some tasks are performed by background workers. To run a Sidekiq background worker process to execute background jobs that are queued:

bundle exec sidekiq

Loading controlled vocabularies

To load the controlled vocabularies in config/vocab/:

  • rails vocab:load CSV=config/vocab/iso639-1.csv NAME="LAE Languages"
  • rails vocab:load CSV=config/vocab/iso639-2.csv NAME="ISO-639-2 Languages"
  • rails vocab:load CSV=config/vocab/lae_areas.csv NAME="LAE Areas"
  • rails vocab:load CSV=config/vocab/lae_genres.csv NAME="LAE Genres" LABEL=pul_label
  • rails vocab:load CSV=config/vocab/lae_subjects.csv NAME="LAE Subjects" CATEGORY=category LABEL=subject

Note on webpacker setup

Webpacker documentation assumes use of yarn as a javascript package manager. Our setup uses npm directly instead of yarn. Therefore, when upgrading webpacker modify instructions on the webpacker README to use npm update --save instead of yarn upgrade --latest

Uploading files

By default, Figgy provides users with the ability to upload binaries from the local file system environment using the directory https://github.com/pulibrary/figgy/tree/master/staged_files. One may copy files into this directory for aiding in development, and may upload these files in this directory using the "File Manager" interface (exposed after saving a Work).

Cloud Storage Support

Figgy may also be configured to upload files from hosted storage providers. Support for users with Google Drive accounts has been tested and verified. Please reference the Browse Everything documentation for more details.

More

For links to helpful valkyrie documentation and troubleshooting tips, visit the wiki pages.