Deployment Overview

NMRKit supports three deployment modes:

ModeUse caseDocumentation
Docker Compose (local)Development and testingLocal Installation
Docker Compose (ops)Dev / prod servers with TraefikDocker
Kubernetes (Helm)Cluster deploymentsCluster Deployment

Public instances

EnvironmentAPI docsHost
Developmentdev.nmrkit.nmrxiv.org/latest/docsdev.nmrkit.nmrxiv.org
Productionnmrkit.nmrxiv.org/latest/docsnmrkit.nmrxiv.org

Compose files

FilePurpose
docker-compose.ymlFull local stack (API, nmr-cli, nmr-respredict, DB, Redis, MinIO, monitoring)
ops/docker-compose-dev.ymlDev server with Traefik reverse proxy
ops/docker-compose-prod.ymlProduction server with Traefik

Required services

At minimum, the following containers must be running for full API functionality:

ServiceRequired for
nmrkit-apiAll API endpoints
nmr-converterSpectra, converter, and predict modules
pgsqlRegistration module
nmr-respredictFuture respredict integration (optional today)

Environment configuration

Copy env.template to .env and set database credentials:

bash
cp env.template .env
VariableDescription
POSTGRES_USERPostgreSQL username
POSTGRES_PASSWORDPostgreSQL password
POSTGRES_SERVERDatabase host (pgsql in Compose)
POSTGRES_PORTDatabase port (default 5432)
POSTGRES_DBDatabase name (nmr_predict)
MINIO_ROOT_USERMinIO access key
MINIO_ROOT_PASSWORDMinIO secret key

CI/CD

Docker images are built and published via GitHub Actions:

  • dev-build.yml — builds nfdi4chem/nmrkit:dev-latest on pushes to development
  • prod-build.yml — builds nfdi4chem/nmrkit:latest on releases
  • doc-deploy.yml — deploys this documentation site to GitHub Pages

See #95 — Update CI/CD and deployment script for ongoing improvements to the deployment pipeline.

Quick start (local)

bash
git clone https://github.com/NFDI4Chem/nmrkit.git
cd nmrkit
cp env.template .env
docker compose up -d

API docs: http://localhost:8080/latest/docs