OregonDigital / oregondigital

OregonDigital Hydra Application
https://oregondigital.org/catalog/
Other
25 stars 5 forks source link

OregonDigital

Circle CI Coverage Status

Overview

Current production Oregon Digital running Fedora 3 and Hydra 6.

New development is focused on Oregon Digital 2: http://github.com/OregonDigital/OD2

Connected projects:

Local Development Setup

Using Docker

Grab everything you need

# Grab the repository
git clone git@github.com:OregonDigital/oregondigital.git

# Start the whole stack - on your first run, this can take a while to download
# all the necessary images
docker-compose up -d

Making zoomable images work

Create config/app.yml with information about how to reach your local system's RAIS container; e.g.:

iip_server:
  location: http://localhost:12415/images/dzi

You may need to choose something other than localhost if you're doing a demo or running docker inside a virtual machine. The rest of the settings (port and path) should remain untouched.

Generate filler data

First, run the rake task:

docker-compose exec workers bundle exec rake filler_data

Next, log into the main application by browsing to http://localhost:3000/users/sign_in. Docker sets up the admin user as "admin@example.org" with the password "admin123". Once you're signed in, visit http://localhost:3000/resque/overview and watch the queue slowly get processed. This can take a while, but once it's done you should have 3 collections of dummy data.

Testing

Easy as ./docker/test.sh! Except....

Updating Gems

The safest way to update gems is to destroy and rebuild the dev image, otherwise you're only updating gems within a container, and containers do not necessarily persist very long.

docker-compose stop
docker-compose rm
docker rmi oregondigital/od1-dev
docker-compose build workers

You can also run "bundle install" inside a particular container, but this should only be done if you know what you're doing. It can get really confusing when you accidentally use docker-compose run when you meant docker-compose exec. Or if you choose the wrong container name.

Various other docker stuff

This list of commands should get you moving forward with most typical development tasks:

# When you change code, if you start getting odd errors, you may have to
# restart the OD containers:
docker-compose restart web workers resquehead

# If things are still "weird", rebuild the OD containers:
docker-compose stop web workers resquehead
docker-compose rm web workers resquehead
docker-compose build web workers resquehead
docker-compose up -d

# If you need a "hard reset", nuke it!  WARNING: THIS WILL REMOVE ALL YOUR
# DEVELOPMENT-INGESTED ASSETS!
./docker/nuke.sh

# When nukes just don't destroy enough, try out a SUPERNOVA!  This will remove
# every Docker entity related to OD, which will mean re-downloading the images:
./docker/supernova.sh

# Watch the logs for everything
docker-compose logs -f

# Just watch the Rails web app logs
docker-compose logs -f web

Manual

Requires Ruby 2.0

(Mongo needs to be running, 2.4 is known to work: https://docs.mongodb.com/v2.4/tutorial/install-mongodb-on-ubuntu/ )

git clone git@github.com:OregonDigital/oregondigital.git
cd oregondigital
bundle install
rake db:migrate
git submodule init
git submodule update
rake hydra:jetty:config

On a newer install, may have to pin

Symlink media directories:

ln -s /path/to/rails/media public/media
ln -s /path/to/rails/media/thumbnails public/thumbnails

Install memcached if needed, or make sure it's running (needed for login sessions):

Start the servers:

rake jetty:start
rails server

Vagrant Setup

Requires Git, VirtualBox, and Vagrant. Also requires 3 gigs of RAM to be available for the VM which vagrant creates.

Option 1: manual submodule setup:

git clone git@github.com:OregonDigital/oregondigital.git
cd oregondigital
git submodule init
git submodule update

Option 2: automatic submodule setup:

git clone git@github.com:OregonDigital/oregondigital.git --recursive
cd oregondigital

Either way, you then tell vagrant to download and start the virtual machine:

vagrant up
vagrant ssh

After vagrant ssh you'll be logged into the VM. From there, you'll want to start the Rails server:

cd /vagrant
rails server

You can browse the app via http://localhost:3000, and check on the jetty container (which houses solr and fedora) at http://localhost:8983.