Overview
Prerequisites
- Git
- Docker
Clone the Clowder source to your local machine:
git clone https://<USERNAME>@opensource.ncsa.illinois.edu/bitbucket/scm/cats/clowder.git
Docker Compose Setup
After you checkout the Clowder source, simply run the following command to bring up the Clowder stack under Docker Compose:
docker-compose up -d
No Docker Compose? No Problem!
If you do not have the docker-compose binary natively installed, you can create an alias to run Compose under Docker instead:
alias docker-compose='docker run -it --rm --privileged -v $HOME/.docker:/root/.docker -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/workdir -w /workdir docker/compose:1.15.0'
You should then be able to run the same command to bring up the Clowder stack:
docker-compose up -d
Developer Environment Setup
- Install JetBrains Toolbox
- Install IntelliJ
- Import Clowder SBT project into IntelliJ
- Create a "Play 2.0 App" Run Configuration
- Download JNotify and add it to your path
JNotify Setup
To compile Clowder you will need to have at least version 1.7 of JAVA. Version 1.8 will work as well.
On Windows and Mac, the JNotify library is required and not included with Java 1.8 64bit - this will result in degraded (e.g. extremely sluggish navigation) performance when debugging your developer instance.
The following message will display in the development console in IntelliJ if playframework is unable to locate JNotify is the case:
Cannot load the JNotify native library (no jnotify_64bit in java.library.path)
Play will check file changes for each request, so expect degraded reloading performace.
JNotify Documentation can be found here: http://jnotify.sourceforge.net/
Download JNotify here: https://sourceforge.net/projects/jnotify/files/
Windows
Simply paste jnotify_64bit.dll to the path\to\jdk1.8\bin folder.
Mac OS X
Create a new folder called "jnotify" in the "tools" directory: e.g. path/to/jdk1.8/tools/jnotify
Next, paste jnotify-0.94.jar, libjnotify.so, and libjnotify.jnilib to the path/to/jdk1.8/tools/jnotify folder.
Finally, add this folder to your -Djava.library.path=path/to/jdk1.8/tools/jnotify in IntelliJ.
Required Dependencies
There are still a few things missing before Clowder will run properly
MongoDB: docker run -it -d --name=mongo -v $(pwd)/mongo:/data/db -p 27017:27017 mongo:3.4
Optional dependencies
For RabbitMQ plugin (extractors): docker run -itd --name=rabbit -p 5672:5672 -p 15672:15672 rabbitmq:management-alpine
For Elasticsearch plugin (search indexing): docker run -itd --name=elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:2
For ToolManager plugin (analysis environments): docker run -itd --name=toolserver -p 8082:8082 clowder/toolserver
For pyCSW plugin (?): docker build -t clowder:pycsw . && docker run -it -d --name pycsw -p 80:8000 clowder/pycsw
For Geoserver plugin (QGIS analysis): ??
Running Extractors
docker run -it --rm --net=host -e RABBITMQ_URI="amqp://guest:guest@localhost/%2f" -e REGISTRATION_ENDPOINTS="http://141.142.60.193:9000/api/extractors?key=r1ek3rs" -v $(pwd):/home/clowder clowder/extractors-image-metadata