Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nomad-lab/nomad-FAIR
  • pgoel/nomad-FAIR
  • jpd47/nomad-FAIR
3 results
Show changes
Commits on Source (75)
Showing
with 147 additions and 175 deletions
......@@ -72,9 +72,6 @@ build gui:
stage: build
extends: .build_image
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
GIT_SUBMODULE_PATHS: gui/*
TARGET: dev_node
DESTINATION: "${CI_REGISTRY_IMAGE}/dev_node:${DOCKER_TAG}"
......@@ -92,9 +89,6 @@ build python:
stage: build
extends: .build_image
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
GIT_SUBMODULE_PATHS: gui/*
TARGET: dev_python
DESTINATION: "${CI_REGISTRY_IMAGE}/dev_python:${DOCKER_TAG}"
......@@ -128,8 +122,6 @@ check helm chart:
python linting:
stage: test
image: ${CI_REGISTRY_IMAGE}/dev_python:${DOCKER_TAG}
variables:
GIT_SUBMODULE_STRATEGY: none
script:
- ruff check nomad tests
- ruff format nomad tests --check
......@@ -158,10 +150,6 @@ python package clean up:
check python dependencies:
stage: test
image: python:3.9
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
GIT_SUBMODULE_PATHS: dependencies/*
before_script:
- pip install --upgrade uv
script:
......@@ -187,10 +175,6 @@ check python dependencies:
- name: mongo:5.0.6
alias: mongo
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_DEPTH: 1
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
GIT_SUBMODULE_PATHS: dependencies/*
RABBITMQ_ERLANG_COOKIE: SWQOKODSQALRPCLNMEQG
RABBITMQ_DEFAULT_USER: rabbitmq
RABBITMQ_DEFAULT_PASS: rabbitmq
......@@ -203,7 +187,7 @@ check python dependencies:
before_script:
- scripts/check_elastic.sh
- uv pip install -e ".[dev]"
- uv pip install -r default_plugins.txt -c requirements-dev.txt # required until all legacy tests are removed
- uv pip install -r requirements-plugins.txt -c requirements-dev.txt # remove this after moving to distro
generate pytest timings:
extends: .base_test
......@@ -307,14 +291,9 @@ gui tests:
check gui artifacts:
stage: test
image: ${CI_REGISTRY_IMAGE}/dev_python:${DOCKER_TAG}
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_DEPTH: 1
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
GIT_SUBMODULE_PATHS: dependencies/*
script:
- uv pip install ".[dev,parsing,infrastructure]"
- uv pip install -r default_plugins.txt # remove this after moving to distro
- uv pip install -r requirements-plugins.txt -c requirements-dev.txt # remove this after moving to distro
- scripts/check_gui_artifacts.sh
after_script:
- >
......@@ -330,9 +309,6 @@ check gui artifacts:
build python package:
stage: test
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_DEPTH: 1
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
SETUPTOOLS_SCM_PRETEND_VERSION: "${SETUPTOOLS_SCM_PRETEND_VERSION}"
extends: .build_image
script:
......@@ -359,9 +335,6 @@ build final image:
stage: test
needs: ["build python package", "update_scm_pretend_version"]
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_DEPTH: 1
GIT_SUBMODULE_UPDATE_FLAGS: --jobs 4
SETUPTOOLS_SCM_PRETEND_VERSION: "${SETUPTOOLS_SCM_PRETEND_VERSION}"
TARGET: final
DESTINATION: "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}"
......
[submodule "dependencies/materia"]
path = gui/materia
url = https://github.com/nomad-coe/materia
[submodule "dependencies/nomad-dos-fingerprints"]
path = dependencies/nomad-dos-fingerprints
url = https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-dos-fingerprints.git
[submodule "dependencies/parsers/eelsdb"]
path = dependencies/parsers/eelsdb
url = https://github.com/nomad-coe/nomad-parser-eelsdb.git
branch = master
[submodule "gui/crystcif-parse"]
path = gui/crystcif-parse
url = https://github.com/stur86/crystcif-parse.git
[submodule "dependencies/parsers/electronic"]
path = dependencies/parsers/electronic
url = https://github.com/nomad-coe/electronic-parsers.git
[submodule "dependencies/parsers/atomistic"]
path = dependencies/parsers/atomistic
url = https://github.com/nomad-coe/atomistic-parsers.git
[submodule "dependencies/parsers/workflow"]
path = dependencies/parsers/workflow
url = https://github.com/nomad-coe/workflow-parsers.git
[submodule "dependencies/parsers/database"]
path = dependencies/parsers/database
url = https://github.com/nomad-coe/database-parsers.git
[submodule "examples/plugins/schema"]
path = examples/plugins/schema
url = https://github.com/nomad-coe/nomad-schema-plugin-example.git
[submodule "examples/plugins/parser"]
path = examples/plugins/parser
url = https://github.com/nomad-coe/nomad-parser-plugin-example.git
[submodule "examples/plugins/normalizer"]
path = examples/plugins/normalizer
url = https://github.com/nomad-coe/nomad-normalizer-plugin-example.git
[submodule "dependencies/parsers/simulation"]
path = dependencies/parsers/simulation
url = https://github.com/nomad-coe/simulation-parsers.git
[submodule "dependencies/parsers/example"]
path = dependencies/parsers/example
url = https://github.com/nomad-coe/nomad-parser-example.git
## 1.3.6 (2024-08-29)
### Fixed (2 changes)
- [Resolve "custom schema for tabular parser are failing to process"](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/commit/0ce8ec7ba72823cd9ddea6c93d73f2d7380aea06) ([merge request](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/merge_requests/1993))
- [Resolve "frontend float quantities validation"](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/commit/e842999ccfdcbf3c43fdb53d800b87e788aa8e79) ([merge request](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/merge_requests/2039))
### Added (1 change)
- [Added new query visualization below the search bar.](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/commit/a571698c3ece95ff5b4e0f93c78f360bd29fc7c6) ([merge request](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/merge_requests/2042))
### Changed (1 change)
- [Remove normalizers submodule](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/commit/1925aa71faa4455cd2f446038aed27eaf0c5bd6f) ([merge request](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/merge_requests/2041))
## 1.3.5 (2024-08-19)
### Fixed (3 changes)
......
......@@ -113,15 +113,13 @@ ENV NODE_OPTIONS "--max_old_space_size=4096 --openssl-legacy-provider"
# Fetch and cache all (but only) the dependencies
COPY gui/yarn.lock gui/package.json ./
COPY gui/materia ./materia
COPY gui/crystcif-parse ./crystcif-parse
RUN yarn --network-timeout 1200000
# Artifact for running the tests
COPY tests/states/archives/dft.json /app/tests/states/archives/dft.json
# Copy and build the applicaion itself
# Copy and build the application itself
COPY gui .
RUN echo "REACT_APP_BACKEND_URL=/fairdi/nomad/latest" > .env
......@@ -133,7 +131,6 @@ FROM dev_python as dev_package
WORKDIR /app
COPY dependencies ./dependencies
COPY docs ./docs
COPY examples ./examples
COPY nomad ./nomad
......@@ -196,8 +193,8 @@ RUN pip install nomad-lab-*.tar.gz
# Install default plugins. TODO: This can be removed once we have a proper
# distribution project.
COPY default_plugins.txt .
RUN uv pip install -r default_plugins.txt -c requirements.txt
COPY requirements-plugins.txt .
RUN uv pip install -r requirements-plugins.txt -c requirements.txt
# ================================================================================
......
......@@ -7,18 +7,3 @@ include pyproject.toml setup.py AUTHORS LICENSE README.md README.parsers.md requ
graft nomad/app/static
exclude nomad/app/static/gui/env.js
exclude nomad/app/static/gui/artifact.js
include dependencies/nomad-dos-fingerprints/README.md
recursive-include dependencies/nomad-dos-fingerprints/nomad_dos_fingerprints *.py
include dependencies/parsers/atomistic/README.md
recursive-include dependencies/parsers/atomistic/atomisticparsers *.py nomad_plugin.yaml
include dependencies/parsers/database/README.md
recursive-include dependencies/parsers/database/databaseparsers *.py nomad_plugin.yaml
include dependencies/parsers/eelsdb/README.md
recursive-include dependencies/parsers/eelsdb/eelsdbparser *.py nomad_plugin.yaml
include dependencies/parsers/electronic/README.md
recursive-include dependencies/parsers/electronic/electronicparsers *.py *.json nomad_plugin.yaml
include dependencies/parsers/workflow/README.md
recursive-include dependencies/parsers/workflow/workflowparsers *.py nomad_plugin.yaml
include dependencies/parsers/simulation/README.md
recursive-include dependencies/parsers/simulation/simulationparsers *.py
[![pipeline status](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/badges/develop/pipeline.svg)](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/commits/develop)
[![backend coverage report](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/badges/develop/coverage.svg?job=python+tests&key_text=backend+coverage&key_width=130)](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/commits/develop)
[![backend coverage report](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/badges/develop/coverage.svg?job=python+coverage+report&key_text=backend+coverage&key_width=130)](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/commits/develop)
[![frontend coverage report](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/badges/develop/coverage.svg?job=gui+tests&key_text=frontend+coverage&key_width=130)](https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/commits/develop)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.05388/status.svg)](https://doi.org/10.21105/joss.05388)
......
......@@ -3,11 +3,16 @@ git+https://github.com/FAIRmat-NFDI/nomad-porous-materials.git@522f4a3208077f534
git+https://github.com/FAIRmat-NFDI/nomad-aitoolkit.git@b203f8eb28dc4b6771a39d5c5b7ad3d9d8583ac8
nomad-simulations==0.0.1
pynxtools[convert]==0.5.0
git+https://github.com/nomad-coe/nomad-schema-plugin-run.git@169029274e282a54df3292f6aa0d7bfbeb95ef9c
git+https://github.com/nomad-coe/nomad-schema-plugin-simulation-workflow.git@ada9074f8362f8afa331ddc2433994af0ff93ee2
git+https://github.com/nomad-coe/nomad-normalizer-plugin-bandstructure.git@669f2c899bc4013975b1b38ca8af630fe2e8a930
git+https://github.com/nomad-coe/nomad-normalizer-plugin-dos.git@90c92ba6d520df52fe73a571ebd103f36e9975a8
git+https://github.com/nomad-coe/nomad-normalizer-plugin-soap.git@898416e70b8bb26d87a7a5b0644f831beec4f631
git+https://github.com/nomad-coe/nomad-normalizer-plugin-spectra.git@04ecd6544afc3dc6e88e60a25152a125f0c6a5ed
git+https://github.com/nomad-coe/nomad-normalizer-plugin-system.git@c849c947707f617e434e3ac95249ab33a90b9415
git+https://github.com/nomad-coe/nomad-normalizer-plugin-simulation-workflow.git@22af484c9ff6ff0d6c26be0bac9c66fa64200235
git+https://github.com/nomad-coe/nomad-schema-plugin-run.git@develop
git+https://github.com/nomad-coe/nomad-schema-plugin-simulation-workflow.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-bandstructure.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-dos.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-soap.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-spectra.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-system.git@develop
git+https://github.com/nomad-coe/nomad-normalizer-plugin-simulation-workflow.git@develop
git+https://github.com/nomad-coe/electronic-parsers.git@develop
git+https://github.com/nomad-coe/atomistic-parsers.git@develop
git+https://github.com/nomad-coe/workflow-parsers.git@master
git+https://github.com/nomad-coe/database-parsers.git@master
git+https://github.com/nomad-coe/nomad-parser-eelsdb.git@entry-point
\ No newline at end of file
Subproject commit ea5c3bb2fd78b3aa4c2d726f0345b2f2a19c9d9b
File deleted
Subproject commit 8e9e6d02435ac27af6bc199bd55b6528d484c36d
Subproject commit de625abc45b0d3e6d6dc648d0482db44836df3c8
Subproject commit 44d81d4dc5a5bc438a4cee00dd3703458fa1f786
Subproject commit 97e51b06065db72782533c01a867d808cd6ec009
Subproject commit 8d8b58027e9ab4e61077b94d19e74bc0645419a3
Subproject commit 6c351b50b24b83ebdb873eba7491460be3abe747
Subproject commit c25d2cbbbe15f7f36d2f0727b0c53b276248c6ac
## Why a federated data infrastructure?
There are several benefits for using multiple NOMAD installations:
- **Sovereignty**: Data is stored and managed locally. This is important for data privacy and security.
- **Resource**: Local resources can be used to manage and analyse data. This is important for large data sets.
- **Customization**: Local installations can be customized (plugins). This is important to support local workflows and special file formats.
## What is a NOMAD Oasis?
The software that runs NOMAD is Open-Source and can be used independently of the NOMAD
*central installation* at [http://nomad-lab.eu](http://nomad-lab.eu){:target="_blank"}.
We call any NOMAD installation that is not the *central* one a NOMAD Oasis.
_central installation_ at [http://nomad-lab.eu](http://nomad-lab.eu){:target="\_blank"}.
We call any NOMAD installation that is not the _central_ one a NOMAD Oasis.
<figure markdown>
![oasis use-cases](images/oasis-use-cases.png){ width=700 }
<figcaption>NOMAD Oasis use-cases</figcaption>
</figure>
## Use cases
There are several use-cases how the NOMAD software could be used. Of course other
uses and hybrids are imaginable:
- Academia: Use the Oasis for local management of unpublished research data
- Mirror: Use the Oasis as a mirror that hosts a copy of all published NOMAD data
- Industry: Use of Oasis to manage private data and full internal use of published data in compliance with strict privacy policies
- Mirror: Use the Oasis as a mirror that hosts a copy of all published NOMAD data
- FAIRmat: Use Oasis to form a network of repositories to build a federated data infrastructure
for materials science.
This is what we do in the [FAIRmat project](https://www.fair-di.eu/fairmat/consortium){:target="_blank"}.
for materials science.
This is what we do in the [FAIRmat project](https://www.fair-di.eu/fairmat/consortium){:target="\_blank"}.
<figure markdown>
![oasis use-cases](images/oasis-use-cases.png){ width=700 }
<figcaption>NOMAD Oasis use-cases</figcaption>
</figure>
## Data transfer
!!! warning "Attention"
The data transfer implementation is still under development and not
yet relyable for all use-cases. See "Current Limitations and Plans" below.
NOMAD data is inherently file based. You upload raw-files (or in case of ELNs edit raw files
in the web interface) and the NOMAD processes these files to extract data which
again is stored in files. Therefore, data transfer is basically "just" copying
files from one installation to another.
We implemented a _bundle_ format for published data. A bundle is a zip file that contains
all raw files, archive files of an _upload_, and a bit of metadata, e.g. with
information on upload name, dates, authors, datasets, etc. This bundle format
is our tranfer file format. Bundles are exported on one end and imported on
the other.
Upon import, the reciving NOMAD replicates the state of the upload on the
sending NOMAD. This means that the upload is published and the data is indexed.
Users can treat the upload as if they had uploaded it on the receiving
NOMAD themselves.
There are two principle ways to transfer data:
- **Automated**: The Oasis user interface offers an option to transfer data to the configured
central NOMAD installation. This uses an API endpoint on the Oasis that creates a bundle and pushes it
to the central NOMAD installation via the API of the central NOMAD.
- **Manual**: You can use the NOMAD CLI to export uploads as bundle files and
upload them manually to another NOMAD installation.
- **Re-upload**: Of course you could also skip the bundle format entrily and just
re-upload the raw files to another NOMAD installation.
## Current Limitations and Plans
The basic bundle format, export, and import, and a transfer button in the UI are implemented.
However, there are still limitations and plans for future development:
- **Trust issues**: Some of the bundle metadata is normally created by
NOMAD. Timestamps like upload times are the biggest concerns here.
This means that the receiving NOMAD needs to trust that the timestamps in a bundle
are not forged. Therefore, it needs to verify that the bundle
was actually created by a trusted Oasis. Currently, Oasis have to be
configured to use a trusted user (usually the Oasis admin) to submit bundles
to the central NOMAD.
A version were timestamps are ignored and the upload is dated to the time
it was received, would also be possible implementation, but is not implemented
yet.
- **Plugins and versions**: Two installations (e.g. Oasis and central NOMAD)
might not have the same plugins installed and not have the same version
of all schemas available. Received data might not be fully processable.
Therefore, it is planned, but not yet implemented, to make all required schemas
part of the bundle.
- **Metadata transfers**: Currently, only full uploads with all raw files
and all archive files can be transferred.
It is planned to allow transfers for only the "metadata". Here metadata
refers to the archive files (or even just certain result sections from
said archive files). This would still allow to index and find entries on the
central NOMAD without transfering potentially huge raw files. This would allow
the central NOMAD to act as a portal for all data in the federation. This is not
yet implemented.
## References to the implementation
There are no detailed how-tos yet. Here are some pointers to reference documentation that might be relevant:
- [The API endpoint to download an upload in bundle format.](https://nomad-lab.eu/prod/v1/api/v1/extensions/docs#/uploads%2Fbundle/get_upload_bundle_uploads__upload_id__bundle_get)
- [The API endpoint to upload a bundle.](https://nomad-lab.eu/prod/v1/api/v1/extensions/docs#/uploads%2Fbundle/post_upload_bundle_uploads_bundle_post)
- [The API endpoint to publish an upload, including publishing to the configured central NOMAD.](https://nomad-lab.eu/prod/v1/api/v1/extensions/docs#/uploads%2Faction/post_upload_action_publish_uploads__upload_id__action_publish_post)
- [The CLI commands to export and import an upload as a bundle.](http://127.0.0.1:8000/reference/cli.html#nomad-admin-uploads-export)
......@@ -82,28 +82,19 @@ See also the [documentation part](./code.md#documentation) in our code navigatio
Also read the guide on [how to develop, publish, and distribute plugins](../plugins/plugins.md).
### Built-in plugins (and submodules)
### Built-in plugins
Most plugins that are maintained by the NOMAD team are built-in plugins (e.g. all the
parsers). These plugins are also available on the public NOMAD service.
These plugins are tied to the main project's source code via submodules. They are included
in the build and therefore automatically distributed as part of the NOMAD docker images
and Python package.
These plugins are tied to the main project's source code via dependencies.
To contribute to these plugins, use the respective GitHub projects. See also the
list of [parsers](../../reference/parsers.md) and the list of
[built-in plugins](../../reference/plugins.md). The same rules apply there. A merge request
to the main project will also be required to update the submodule.
All these submodules are placed in the `dependencies` directory. After merging or
checking out, you have to make sure that the modules are updated to not accidentally
commit old submodule commits again. Usually you do the following to check if you really
have a clean working directory:
[built-in plugins](../../reference/plugins.md). The same rules apply there.
```shell
git checkout something-with-changes
git submodule update --init --recursive
git status
```
......
......@@ -45,15 +45,6 @@ git checkout -b <my-branch-name>
This branch can be pushed to the repo, and then later may be merged to the relevant branch.
### Install submodules
Parts of the NOMAD software, such as parsers, are maintained in separate Git repositories.
These are then connected to the main repository as Git submodules. To clone and initialize
these submodules, run:
```shell
git submodule update --init
```
## Installation
......@@ -135,8 +126,7 @@ python -c "import magic"
### Install NOMAD
The following command can be used to install all dependencies of all submodules
and NOMAD itself.
The following command can be used to install NOMAD.
```shell
./scripts/setup_dev_env.sh
......@@ -145,12 +135,6 @@ and NOMAD itself.
??? note "Installation details"
Here is more detailed rundown of the installation steps.
First we ensure that all submodules are up-to-date:
```shell
git submodule update --init --recursive
```
Previous build is cleaned:
```shell
......@@ -159,24 +143,31 @@ and NOMAD itself.
rm -rf site
```
All the requirements needed for development (including submodule requirements) are installed:
We use [uv](https://docs.astral.sh/uv/) to install the packages. You can install uv using `pip install uv`.
```shell
pip install --prefer-binary -r requirements-dev.txt
```
Next we install the `nomad` package itself (including all extras). The `-e`
option will install NOMAD with symbolic links that allow you to change
the code without having to reinstall after each change.
The -c flag restricts the installation of dependencies to the versions specified in the provided requirements file, ensuring that only those versions are installed.
```shell
uv pip install -e .[parsing,infrastructure,dev] -c requirements-dev.txt
```
Install "default" plugins. TODO: This can be removed once we have proper proper distribution
```shell
pip install -e .[parsing,infrastructure,dev]
uv pip install -r requirements-plugins.txt
```
If pip tries to use and compile sources that create errors, it can be told to prefer the binary version:
Next we build the documentation.
```shell
pip install -e .[parsing,infrastructure,dev] --prefer-binary
sh scripts/generate_docs_artifacts.sh
mkdocs build
mkdir -p nomad/app/static/docs
cp -r site/* nomad/app/static/docs
```
The NOMAD GUI requires a static `.env` file, which can be generated with:
......
......@@ -104,27 +104,4 @@ export COMPOSE_FILE=docker-compose.yaml:docker-compose.plugins.yaml
docker compose up -d
```
Here is a complete Oasis setup [nomad-oasis-with-plugins.zip](../../assets/nomad-oasis-with-plugins.zip). Simply download, extract, and start like any other Oasis:
```sh
unzip nomad-oasis-with-plugins.zip
cd nomad-oasis-with-plugins
sudo chown -R 1000 .volumes
sudo chown -R 1000 nomad-schema-plugin-example
sudo chown -R 1000 nomad-parser-plugin-example
sudo chown -R 1000 nomad-normalizer-plugin-example
export COMPOSE_FILE=docker-compose.yaml:docker-compose.plugins.yaml
docker compose pull
docker compose up -d
curl localhost/nomad-oasis/alive
```
!!! warning "Attention"
It is important to set up the correct user rights for your volumes and
plugins. Our default `docker-compose` setup uses the user `1000` in group
`1000` to run the services, this is the reason for the `chown` commands
above that ensure that the processes have access to the data stored in
volumes and in the plugins. If you use another user/group to run the docker
services, update the commands accordingly.
Read the [Oasis install guide](install.md) for more details.