MMS Reference Implementation
This is the reference implementation for MMS. For the source code, please head to https://github.com/Open-MBEE/mms. For more information about Open-MBEE, visit the Open-MBEE Website. For more detailed documentation, visit MMSRI ReadTheDocs.
Quick Start
Note this quick start is for getting a test instance up and is not recommended for production use. Different configs will be required for different deployment scenarios, environments and workloads (ex. elasticsearch should be a cluster instead of single node, different memory allocations, etc)
Docker
Installation instructions are found here: Docker documentation
Option 1: Get from dockerhub
Use tag 4.x from Dockerhub
Option 2: Build from repo
- Copy the
application.properties.example
file insrc/main/resources/
asapplication.properties
- In the command line, run
docker-compose up --build
to create and start all the services from the configuration. - Swagger ui at http://localhost:8080/v3/swagger-ui.html
- Use the command
docker-compose down
to stop any containers from running and to remove the containers, networks, and images created by thedocker-compose up
command. This command should always be done before any new attempts to restart the services from the configuration.
Note the docker compose file is running the application with the test
profile, with the config from src/main/resources/application-test.properties
This implementation brings in Spring Actuator and Logbook for monitoring and logging features - see Logbook and Actuator for more info.
The application.properties.example
file has the suggested configs and comments. example
Using externalized configs
There are a variety of options to override the packaged config depending on the deployment scenario. See Config locations for the list of options. Usually using profiles or environment variables are a good way to specify different configs for different environments.
Developer Setup
Docker
We suggest using Docker to set up PostgreSQL and Elasticsearch. Installation instructions are found here: Docker documentation
Java SE Development Kit 17
Installation instructions: JDK-17 download
Postgresql
Install postgres (PostgreSQL) 11, instructions for Docker: PostgreSQL with Docker
docker run -d -e POSTGRES_PASSWORD=test1234 -e POSTGRES_USER=mmsuser -e POSTGRES_DB=mms -p 5432:5432 postgres:11-alpine
or Mysql
5.7 Mysql Docker
docker run -d -e MYSQL_ROOT_PASSWORD=test1234 -e MYSQL_DATABASE=mms -p 3306:3306 mysql:5.7
Elasticsearch
Install Elasticsearch 7.8. If you use Docker instructions are available here: Setting up Elasticsearch with Docker
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.1
Artifact Storage
Use MinIO for an open sourced local s3 api compatible storage
docker run -p 9000:9000 -e "MINIO_ACCESS_KEY=admintest" -e "MINIO_SECRET_KEY=admintest" minio/minio server /data
The Application:
- Copy the
application.properties.example
file insrc/main/resources/
asapplication.properties
- Change values for all the appropriate properties. The example file holds sane values for most properties.
- Setup Run and Debug configurations. The command line run command is
./gradlew bootRun
- Swagger ui at http://localhost:8080/v3/swagger-ui.html
Swagger codegen
./gradlew generateSwaggerCode
Results in build/swagger-code-*
Built With
Contributing
To learn how you can get involved in a variety of ways, please see Contributing to OpenMBEE.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details