NMRKit supports three deployment modes:
| Mode | Use case | Documentation |
|---|---|---|
| Docker Compose (local) | Development and testing | Local Installation |
| Docker Compose (ops) | Dev / prod servers with Traefik | Docker |
| Kubernetes (Helm) | Cluster deployments | Cluster Deployment |
| Environment | API docs | Host |
|---|---|---|
| Development | dev.nmrkit.nmrxiv.org/latest/docs | dev.nmrkit.nmrxiv.org |
| Production | nmrkit.nmrxiv.org/latest/docs | nmrkit.nmrxiv.org |
| File | Purpose |
|---|---|
docker-compose.yml | Full local stack (API, nmr-cli, nmr-respredict, DB, Redis, MinIO, monitoring) |
ops/docker-compose-dev.yml | Dev server with Traefik reverse proxy |
ops/docker-compose-prod.yml | Production server with Traefik |
At minimum, the following containers must be running for full API functionality:
| Service | Required for |
|---|---|
nmrkit-api | All API endpoints |
nmr-converter | Spectra, converter, and predict modules |
pgsql | Registration module |
nmr-respredict | Future respredict integration (optional today) |
Copy env.template to .env and set database credentials:
cp env.template .env| Variable | Description |
|---|---|
POSTGRES_USER | PostgreSQL username |
POSTGRES_PASSWORD | PostgreSQL password |
POSTGRES_SERVER | Database host (pgsql in Compose) |
POSTGRES_PORT | Database port (default 5432) |
POSTGRES_DB | Database name (nmr_predict) |
MINIO_ROOT_USER | MinIO access key |
MINIO_ROOT_PASSWORD | MinIO secret key |
Docker images are built and published via GitHub Actions:
dev-build.yml — builds nfdi4chem/nmrkit:dev-latest on pushes to developmentprod-build.yml — builds nfdi4chem/nmrkit:latest on releasesdoc-deploy.yml — deploys this documentation site to GitHub PagesSee #95 — Update CI/CD and deployment script for ongoing improvements to the deployment pipeline.
git clone https://github.com/NFDI4Chem/nmrkit.git
cd nmrkit
cp env.template .env
docker compose up -dAPI docs: http://localhost:8080/latest/docs