Frontend Guide#
NexusLIMS-CDCS is the frontend for NexusLIMS. It is a heavily customized version of the Configurable Data Curation System application developed by the Information Technology Lab at NIST. It provides a web-based platform for searching, visualizing, and managing the experimental records generated by the NexusLIMS backend.
Note
NexusLIMS-CDCS is maintained by Datasophos and is not affiliated with NIST. For more information, see the repository.
About This Guide#
This guide covers:
Deploying NexusLIMS-CDCS for development or production
Configuring environment variables and settings
Administering backups, XSLT stylesheets, and user management
Troubleshooting common issues
For backend documentation (record building, metadata extraction, harvesters), see the User Guide and Developer Guide.
Key Features#
NexusLIMS-CDCS provides:
Structured Data Capture - XML schema-based templates for consistent metadata
Powerful Search - Full-text and field-specific search across all records
Data Visualization - XSLT-based rendering of XML records to rich HTML
RESTful API - Programmatic access for automation and integration
User Authentication - Role-based access control and permissions
Instrument Data Integration - Links to raw experimental files via file server
Architecture#
NexusLIMS-CDCS uses a containerized architecture with four main services:
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e3f2fd', 'primaryTextColor': '#000', 'primaryBorderColor': '#1976d2', 'lineColor': '#1976d2'}}}%%
flowchart LR
subgraph External
Browser([Browser])
NexusLIMS([NexusLIMS Backend])
end
subgraph Docker["Docker Compose Stack"]
Caddy[Caddy<br/>Reverse Proxy<br/>File Server]
Django[Django App<br/>Gunicorn/Runserver]
Postgres[(PostgreSQL)]
Redis[(Redis)]
end
Browser -->|HTTPS :443| Caddy
Caddy -->|Proxy :8000| Django
Django -->|:5432| Postgres
Django -->|:6379| Redis
NexusLIMS -->|REST API| Django
classDef external fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef service fill:#e1f5ff,stroke:#1976d2,stroke-width:2px
class Browser,NexusLIMS external
class Caddy,Django,Postgres,Redis service
Services:
Service |
Purpose |
|---|---|
Caddy |
HTTPS reverse proxy with automatic certificates, serves instrument data and preview files |
Django (CDCS) |
Main application - handles search, record management, user auth |
PostgreSQL |
Primary database for records, users, templates, XSLT |
Redis |
Cache and session storage |
Quick Start#
Visual tour of the CDCS web interface and its features.
Set up a local development environment with hot-reload and test data.
Deploy to production with HTTPS, backups, and security hardening.
Environment variables, XSLT URLs, file paths, and optional integrations.
Backups, XSLT updates, schema management, and monitoring.
Technical Stack#
Backend Framework: Django (Python)
Database: PostgreSQL
Cache: Redis
Web Server: Caddy (with automatic HTTPS via Let’s Encrypt)
Container Platform: Docker and Docker Compose
Package Management: UV (with pyproject.toml and lockfile for reproducible builds)
Base System: NIST MDCS (Materials Data Curation System)
Integration with NexusLIMS#
NexusLIMS-CDCS works alongside the NexusLIMS backend:
NexusLIMS Backend harvests sessions from NEMO and extracts metadata from microscopy files
NexusLIMS Backend builds XML records and uploads them to CDCS via REST API
CDCS Web Interface stores, indexes, and displays the records
Users search, browse, and export records through the CDCS web interface
See also
Configuration variables for connecting NexusLIMS to CDCS (
NX_CDCS_URL,NX_CDCS_TOKEN)The CDCS Integration section in the API reference
Additional Resources#
Getting Help#
Repository: datasophos/NexusLIMS-CDCS
Issues: datasophos/NexusLIMS-CDCS#issues
Professional Support: Datasophos offers deployment, customization, and training services