Skip to content

de.NBI Service Registration Platform

A structured registration platform for de.NBI and ELIXIR-DE bioinformatics services — from initial submission through review and publication.

Get Started API Reference


What it does

  • Structured registration form

Sections for service identity, contact, technical details, EDAM annotations, publications, and KPIs. Validated at every step.

  • bio.tools prefill

Paste a bio.tools URL to pre-populate form fields from the bio.tools database automatically.

  • EDAM ontology integration

Tag services with EDAM Topic and Operation terms. Ontology is synced automatically from edamontology.org.

  • REST API

Full CRUD access with token and API-key authentication. Interactive docs at /api/docs/ (Swagger UI) and /api/redoc/ (ReDoc). Machine-readable OpenAPI schema at /api/schema/.

  • Admin portal

Review, approve, reject, and export submissions. Bulk actions, full audit trail, CSV and JSON export.

  • Scoped API keys

Each submission gets a scoped key for future programmatic updates — read or read+write scope.

  • Service logo upload

Attach a PNG, JPEG, or SVG logo to any service registration — via the web form, the edit form, or the REST API. Images are automatically sanitised (EXIF stripped, SVG scripts removed) before storage.


Quick start

git clone https://github.com/denbi/service-registry
cd service-registry
cp .env.example .env      # set SECRET_KEY, DB_PASSWORD, REDIS_PASSWORD
make build                # builds images + starts stack + runs migrations
make superuser

App at http://localhost:8000 — migrations and EDAM seeding run automatically on first start. See Development Setup for the full local guide.

cp .env.example .env      # configure all production values
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
docker compose exec web python manage.py collectstatic --noinput
docker compose exec web python manage.py createsuperuser

Migrations run automatically on container start. See Deployment for the full guide.


Documentation

Local environment, conda setup, Make targets, and the development workflow.

All site.toml and .env settings — branding, email, security, rate limits.

Production setup: Docker, TLS, nginx, EDAM seeding, backups, updates.

How to register a service, use the update form, and manage API keys.

Reviewing submissions, managing EDAM terms, bio.tools records, and email settings.

Endpoints, authentication schemes, filters, and curl examples.

System design, data model, Docker services, request lifecycle, and static assets.

Running the test suite, coverage targets, and adding new tests.

Full field-level reference for all models.

Release process, migrations, rollback, and upgrade runbook.

How to add or change model fields safely.

Adding a new Django app with API endpoints.


Stack

Layer Technology
Language Python 3.12
Framework Django
API Django REST Framework + drf-spectacular
Database PostgreSQL
Cache / Broker Redis
Task Queue Celery + Celery Beat
Static Files WhiteNoise
Frontend Bootstrap 5 + HTMX + Tom Select
Container Docker + Docker Compose
Reverse Proxy Nginx (host-managed)