Installation

These installation instructions are aimed at developers and will install Girder, and Minerva from source.

The top level directory of Girder cloned by git will be GIRDER_DIR.

Install of system dependencies

Ubuntu 14.04

Update apt package indices before you start.

sudo apt-get update
  • Install Minerva system dependencies
sudo apt-get install libgdal-dev libnetcdf-dev libpng12-dev pkg-config

Fedora 22

sudo dnf install git gcc-c++ libffi-devel make python-devel python-pip geos-devel gdal-devel netcdf-devel hdf5-devel

Setup Girder admin user and assetstore

  • Run Girder to ensure that it works. Mongo should already be running, and you should follow the instructions for a source tree install.
  • Navigate to Girder in your browser, register an admin user.
  • Navigate to the Admin console in Girder, when you are logged in as an admin user, then click on the Assetstores section.
  • Create a default Assetstore.

Install database_assetstore as a Girder plugin

This is needed because minerva depends on database_assetstore plugin.

  • Install girder_db_items plugin into the Girder plugins directory.
cd GIRDER_DIR/plugins
git clone https://github.com/OpenGeoscience/girder_db_items database_assetstore
- Install the required python packages for the database_assetstore plugin.
cd database_assetstore
pip install -r requirements.txt

Install of Minerva as a Girder plugin

  • Install Minerva into the Girder plugins dir from source.
cd GIRDER_DIR/plugins
git clone https://github.com/Kitware/minerva.git
  • Install the Python dependencies of Girder plugins, including dev dependencies.
cd GIRDER_DIR
export IGNORE_PLUGINS=celery_jobs,geospatial,google_analytics,hdfs_assetstore,jquery_widgets,metadata_extractor,mongo_search,oauth,provenance,thumbnails,user_quota,vega;
scripts/InstallPythonRequirements.py --mode=dev --ignore-plugins=${IGNORE_PLUGINS}

Notes:

  • If the cryptography pip package in Girder fails to install, or fails when running Girder, try this
sudo pip uninstall cffi
sudo pip uninstall cryptography
sudo pip install -U cryptography
  • Build the client side of Minerva
cd GIRDER_DIR
npm install
  • copy the minerva.dist.cfg file, located in the GIRDER_DIR/plugins/minerva/server/conf directory, to minerva.local.cfg in that same directory. Any property in minerva.local.cfg will take precedent over any property with the same name in minerva.dist.cfg. If the minerva.local.cfg file is absent, values will be read from minerva.dist.cfg. Change the encrypt_key value in minerva.local.cfg file; the value should be a 32 byte url-safe base-64 encoded string. You can either replace the existing string with one of equal length, using letters and numbers, and ending with an ‘=’, or generate one within python with the following code
from cryptography.fernet import Fernet
Fernet.generate_key()
  • Run the Girder server
cd GIRDER_DIR
python -m girder
  • Navigate to the Admin console in Girder, when you are logged in as an admin user, then click on the Plugins section.
  • Enable the Minerva plugin, which will enable Gravatar, and Jobs plugins. Click the button to restart the server.

This will serve Minerva as your top level application. Girder will now be served at your top level path with /girder.

  • When the server is restarted, refresh the page, you will need to remove #/plugins from your URL as this is no longer valid.

Example:

Pre-Minerva:

http://localhost:8080 => serves Girder

Post-Minerva:

http://localhost:8080 => serves Minerva

http://localhost:8080/girder => serves Girder

Data services

Several minerva components rely on having a data services server up and running. You can either connect to an existing server or spin up a local server using vagrant. See the Provisioning data services section for more details.