Structures is an open-source framework for data storage and retrieval, supporting schema evolution, data management, and providing a user-friendly GUI and OpenAPI interface for data management.
- structures-core
- Provides the core library for use in all other projects.
- structures-frontend
- Provides a GUI for interacting with Structures.
- structures-server
- Provides Access to the core library via a REST API and a GUI.
- Install Docker Desktop.
- Install SdkMan, which makes installing/managing Java and Gradle easy. Also can manage multiple installed versions.
curl -s "https://get.sdkman.io" | bash
- Install Java 11
sdk install java 11.0.17-zulu
- Build the Docker images (Get a cup of ☕ this could take a bit the first time, depending on your internet connection.)
./gradlew bootBuildImage
- Publish the image to docker
export DOCKER_HUB_USERNAME=<your docker hub username> export DOCKER_HUB_PASSWORD=<your docker hub password> ./gradlew bootBuildImage --publishImage
- Run Docker Compose.
docker-compose up -d
(You should see the application listed under containers in docker desktop)
- You can now view the application by going here in a browser. (This may not be available for at least a minute while the backend services finish starting.)
These variables are available for custom configuration, presented are the defaults.
STRUCTURES_INDEX_PREFIX=struct_
STRUCTURES_ELASTIC_USE_SSL=true
STRUCTURES_ELASTIC_URIS=127.0.0.1:9200
STRUCTURES_ELASTIC_CONNECTION_TIMEOUT=1M
STRUCTURES_ELASTIC_SOCKET_TIMEOUT=1M
STRUCTURES_ELASTIC_USERNAME=
STRUCTURES_ELASTIC_PASSWORD=