Hull Synchronizer is a rails application that supports a digital preservation and digital asset management solution by providing an integration and monitoring point between different services.
The application needs to communicate with:
- An instance of Archivematica and the Archivematica Storage Service
- An instance of Hyrax, setup with the appropriate models. Ideally you shoud use hull_culture with hyrax_leaf
- A Box application and Box subscription setup using the following documentation: Creating a Box Application
- An instance of CALM (via access to the CALM API)
The application shared a storage mount with:
- Archivematica
The hull_synchronizer application requires:
- Ruby version: Ruby 2.4.* or above
- Redis
- Database (tested with Postgres)
- Sidekiq
bundle install
rails db:create
rails db:migrate
The application is configured with devise
to require login. There is a rake task available to create the initial user:
rake sync:setup_admin_user[email, password]
This user can then be used to create subsequent user accounts by logging in and navigating to the 'Manage Users' tab. Check the 'admin' box to allow the new user add/edit/delete Users.
Ensure you have docker and docker-compose. See notes on installing docker
To build and run the system in your local environment,
Clone the repository and switch to the feature/docker_setup branch
git clone https://github.com/research-technologies/hull_synchronizer.git
git fetch
git checkout feature/docker_setup
Issue the docker-compose up
command:
$ docker-compose up --build
You should see the rails app at localhost:3000 (if you set EXTERNAL_PORT to a different port, it will be running on that port)
- The environment variables used by docker when running the containers and by the rails application should be in file named .env
- For docker, copy the file .env.template to .env and change / add the necessary information
- For running the application without docker, setup the ENVIRONMENT VARIABLES as you would normally do so (eg. .rbenv-vars)
Generate a new secret with:
rails secret
The application has a partial test suite using rspec, run:
rspec