The Stanford library searchable catalog.
You'll need common dependencies for building rails applications such as a javascript runtime (e.g. v8). If you don't want to have the mysql gem installed for local development you can run the bundle install command below with the --without production deployment
flag
After cloning the repository
$ bundle install
$ yarn install
$ rake searchworks:install
The installation script will
You will need to update the configuration in config/settings.yml
for various parts of the app to work. Please check that file for more information.
There are at least two options for starting Solr.
docker compose up
To start Solr, you can use the solr_wrapper
command. However, if starting from a fresh instance, you may first need to run rake searchworks:install
or rake ci
so that the CJK tokenizer gets copied into the appropriate directory. There is also a separate task (rake searchworks:copy_solr_dependencies
) available if you find that you need to clean solr and the CJK tokenizer is getting removed.
$ solr_wrapper
Start the rails app
$ bin/dev
Once you have Solr running you can load fixture data using bin/rails searchworks:fixtures
We have included fixture files in the spec/fixtures/solr_documents
directory.
If you want to add other documents you can add the identifiers into FixtureHarvester
. This will download more yml files to the fixture folder. Run bin/rails searchworks:fixtures
again to reindex. Please submit your changes and the new yaml files via a pull request. Please use this judiciously as adding many fixtures may add unnecessary complexity and size to the codebase.
Given that this app is using shibboleth + devise for login, it can be tricky to get a user context set. The user itself can be set by starting rails with a REMOTE_USER
env var set (e.g. REMOTE_USER=jstanford bin/dev
).
If you need to set your affiliation attribute (e.g. stanford:staff
) for things like testing article search, you can start rails with a suAffiliation
env var set (e.g. REMOTE_USER=jstanford suAffiliation=stanford:staff bin/dev
).
One caveat to this is that you may still need to go through the login path /sso/login
in order to ensure proper session setup (e.g. eds guest flag set).
There is one testing task: rake ci
This is intended for running tests against the fixtures in the local index.
$ rake ci