Skip to content

Project Setup

Javier Molina edited this page Aug 31, 2016 · 17 revisions
  1. Install java 1.7 if you don't already have it
  2. Clone profile-service and profile-hub from GitHub
  3. Create an IntelliJ project from existing source for each
  4. Create the following directory structure:
/data/profile-hub/config
/data/profile-hub/private-images
/data/profile-hub/staged-images
/data/profile-hub/temp

/data/profile-service/config
/data/profile-service/snapshots
  1. Copy the profile-hub template config file to /data/profile-hub/config and fill in the variable values
  2. Copy the profile-service template config file to /data/profile-service/config and fill in the variable values
  3. Install MongoDB 3.0
  4. Install Elastic Search 1.7.2
  5. Install Elastic Search
  6. Read this: https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
  7. Change the cluster name for ES 1. [es_install_dir]/conf/elasticsearch.yml 1. Uncomment cluster.name 1. Change to something unique 1. Change the value elasticSearch.cluster.name (in the profile-service config file) to match the unique value you provided to Elasticsearch
  8. Install the name index
  9. Download the latest names index file from http://biocache.ala.org.au/archives/nameindexes/ (At the time of writing this was the latest one 20160811/namematching-20160811.tgz)
  10. Unzip it to /data/lucene/[filename] 1. Change the name.index.location property of the profile-service config file to match the directory path
  11. Change profile-service to run on a different port
  12. In IntelliJ, edit the runtime configuration and add -Dgrails.server.port.http=8081 to the command line (change 8081 to whatever you want)
  13. Run both profile-hub and profile-service
  14. http://localhost:8080/profile-hub
  15. Follow the steps here to set up your environment to run the unit tests
  16. Follow the steps here to set up your environment to modify the Jasper Reports files
  17. Once the application is running, follow these steps to import some sample data:
  18. Log in with an ALA Admin user
  19. Create a new collection
  20. Copy the GUID from the URL
  21. In a terminal, go to the root of the profile-service project
  22. Run the following (you may need to change paths/ports to suit your environment):
groovy scripts/FOAImport.groovy -f ../profile-hub/data/sample -p http://localhost:8008/profile-service -o [guid]

Note that the actual port for the command above is 8008, that is a special connector created on development that will allow an unlimited post size


Sandbox integration

Profiles supports the use of a dedicated Sandbox instance to provide private occurrence data for collections ('private' in the sense that it is only visible through the Profiles application, not through any other ALA systems). See the Sandbox Integration wiki page for more info.

If you need to make changes to the sandbox integration, then you will need to install and run the sandbox infrastructure. You have 2 options here:

  1. Run everything locally
  2. Run sandbox on a VM

Option 1 is the most complicated, as you will need to install and configure Sandbox, SOLR, biocache-service and Cassandra. If you want to do that, then you're on your own.

Option 2 is the simplest approach, but has a couple of drawbacks, the main one being that file uploads won't be possible unless your VM and local workstation can share a data directory.

  1. Run a local VM (use Vagrant/Virtual Box as per the ala-install instructions).
  2. Give it 8GB of memory - 4 is not enough to run all the sandbox stuff
  3. Run the sandbox.yml playbook from ala-install, using the ala-install/ansible/inventories/vagrant/profiles-vagrant inventory
  4. Change the sandbox.base.url= property of the profile-hub-config.properties file to profiles.vagrant1.ala.org.au/sandbox

At the time of writing, the sandbox did not include the CORS plugin, so you might need to deal with cross-origin errors.

Clone this wiki locally