Skip to content
Snippets Groups Projects
README.md 2.25 KiB
Newer Older
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
# nshmp-ws

Powers, Peter M.'s avatar
Powers, Peter M. committed
*nshmp-ws* provides web service access to ground motion models (GMMs) used in USGS National Seismic
Hazard Models (NSHMs).

[TOC]

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
## Running the Services

### Gradle
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
To run the services with Gradle:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```bash
./gradlew run
Powers, Peter M.'s avatar
Powers, Peter M. committed
# or './gradlew run -t' to recompile and relaunch when code changes
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```
Powers, Peter M.'s avatar
Powers, Peter M. committed
Alternatively, the services can be run from the JAR file:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```bash
./gradlew assemble
java -jar build/libs/nshmp-ws-all.jar
```

Powers, Peter M.'s avatar
Powers, Peter M. committed
After startup, web services and documentation are available at <http://localhost:8080/>.
Powers, Peter M.'s avatar
Powers, Peter M. committed
#### Customizing Code
Whereas *nshmp-ws* contains code to run web services, ground motion model (GMM) calculations
are handled in the dependent library [*nshmp-lib*](https://code.usgs.gov/ghsc/nshmp/nshmp-lib).
To use a local, modified version of *nshmp-lib*, set an environment variable
Powers, Peter M.'s avatar
Powers, Peter M. committed
`NSHMP_LIB_LOCAL=true` and *nshmp-ws* will look for *nshmp-lib* in a directory adjacent to
*nshmp-ws*. If *nshmp-lib* is located somewhere else, modify the path specified in
[`gradle/dependencies.gradle`](../../gradle/dependencies.gradle). When using a local version
of *nshmp-lib*, first build the *nshmp-lib* project using `./gradlew fatJar` so that
required dependencies are included.

Summary of steps to check out and start running code for local development:

Powers, Peter M.'s avatar
Powers, Peter M. committed
```bash
# --> Set a NSHMP_LIB_LOCAL=true environment variable on your system
cd yourProjectDirectory
git clone https://code.usgs.gov/ghsc/nshmp/nshmp-lib.git
cd nshmp-lib
./gradlew fatJar
cd ..
git clone https://code.usgs.gov/ghsc/nshmp/nshmp-ws.git
cd nshmp-ws
./gradlew run
```
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

### Docker

Powers, Peter M.'s avatar
Powers, Peter M. committed
#### Run from GitLab Registry
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
The nshmp-ws application may be run as a Docker container.

```bash
docker pull code.usgs.gov:5001/ghsc/nshmp/images/nshmp-ws
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
docker run \
    -p <PORT>:8080 \
    code.usgs.gov:5001/ghsc/nshmp/images/nshmp-ws
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

# Example
docker run \
    -p 8080:8080 \
    code.usgs.gov:5001/ghsc/nshmp/images/nshmp-ws
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```

`PORT` should be replaced with an available port that is not in use. The application
can then be accessed from:

```bash
http://localhost:PORT/nshmp/data

# Example
http://localhost:8080/nshmp/data
```

The `PORT` should be replaced with the same value to start the container.

Powers, Peter M.'s avatar
Powers, Peter M. committed
#### Build Docker Locally
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
A Docker image can also be created locally:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```bash
docker build -t <tag name> .
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
```