"Frankly, my dear, I don't GIVE A DAMS!"
R&D project for a future DAMS5. A digital collections application for the UC San Diego Library built using the Hydra framework, specifically using the Hyrax front-end, and the Fedora Repository.
The following software are required:
- Solr
- Fedora Commons digital repository
- A SQL RDBMS (MySQL, PostgreSQL), though note that SQLite will be used by default if you're looking to get up and running quickly.
- Redis, a key-value store. The
redlock
gem requires Redis >= 2.6. - ImageMagick with JPEG-2000 support.
- LibreOffice
- FITS version 0.8.5.
- FFMPEG
Please visit Curation Concerns for installation guide.
- Clone Project:
git clone https://github.com/ucsdlib/damspas-rd
- Open Project:
cd damspas-rd
- Install gems:
bundle install
- Update DB:
bundle exec rake db:migrate
- Edit config/browse_everything_providers.yml file_system home for server side files ingest.
redis-server
# Start the test servers
rake hydra:test_server
Or do it in the following steps:
solr_wrapper -p 8985 -d solr/config/ --collection_name hydra-test
# in another window
fcrepo_wrapper -p 8986 --no-jms
# run the test suits
bundle exec rake spec
rake hydra:server
Or do it in the following steps:
solr_wrapper -p 8983 -d solr/config/ --collection_name hydra-development
# in another window
fcrepo_wrapper -p 8984 --no-jms
# and in another window
rails s
Go to http://localhost:3000/ and register to start
bundle exec sidekiq
rake add_admin_role
bin/import-authorities
rake hyrax:default_admin_set:create
Deployment is handled via ansible, allows rollback and can be used to provision new machines
./bin/deploy production
./bin/rollback production
The following 4 scripts are provided to make server maintanence easier. Each can be run in both production and development mode (see note about development).
./bin/deploy - Deploy a release to the servers. Can be production or development ./bin/provision - Run the configuration script, which will attempt to install and configure all software. Configuration is idempotent, so running it on a configured server is acceptable. Can be run in production or development ./bin/cleanup - development only. This script closes down the docker images used by the scripts to test provisioning ./bin/rollback - Roll back the last deploy. Can be production or development
In order to facilitate development and modification of the ansible scripts, a development config has been established. This requires Docker be running on the dev machine and that the proper docker python packages are installed. If using ansible >= 2.4 install python packages with "pip install docker docker-compose". For older versions of ansible "pip install docker-py". Please note that docker-py and docker-compose Python packages do not get along.
If you run in to problems with systemd (specifically hanging process starts or restarts) then you may need to update the docker image. Systemd upgrades can not be done on the fly in a running docker instance, see: geerlingguy/ansible-role-security#21 To do an update run "docker rmi notch8/systemd" then run the ./bin/provision development as normal. This will clear your existing containers. Note that all containers must be stopped to do this, so you may want to run ./bin/cleanup development first.