djehuty is a research data repository system developed by
4TU.ResearchData. It is utilized by
4TU.ResearchData, at data.4tu.nl, and
Nikhef. Researchers use it to deposit, publish and
cite datasets, software and other research output.
It covers the full life cycle of a deposit: institutional login, metadata and file collection, review, DOI and Handle registration, and serving the published record over the web and an API. State is kept as RDF in a SPARQL 1.1 store. Another institution can run its own instance: branding, menus, identity provider and storage back-ends are all configuration.
The documentation source lives in docs/ and is published to
djehuty.4tu.nl. The site is assembled from three parts:
- the MkDocs documentation, written as Markdown in
docs/; - the API reference, a static OpenAPI reference generated from the route
definitions in
src/djehuty/api/andsrc/djehuty/application.py; - the community site, rendered with Quarto from the
sources in
community/.
| Page | What it covers |
|---|---|
| Configuring and running djehuty | Every configuration option |
| Deployment | Deploying with Helm, containers or the Python package |
| Knowledge graph | The RDF data model |
| Contributing | Development workflow and a tour of the source code |
| API | The HTTP API |
The site is built with MkDocs using the
Material theme. You need
uv and
just; the Python dependencies come
from the docs group in pyproject.toml and are installed automatically. To
build the community site you also need Quarto CLI.
The API reference and the community site are generated into docs/ before
MkDocs runs, so that MkDocs copies them into the final site. To preview all
three parts while you write, run these in order:
just openapi
just docs-community
just docs-md-serveThat serves the site at http://localhost:8000 and rebuilds whenever a file under
docs/ changes. The API reference and the community site are not regenerated by
live reload: after changing an endpoint or a file under community/, re-run
just openapi or just docs-community respectively.
If you are only editing the Markdown pages, just docs-md-serve on its own is
enough.
To build the complete static site into site/:
just openapi
just docs-community
just docs-mdRemove the build output again with just docs-clean.
Editing the docs is a pull request like any other — the pages are Markdown, so a
typo fix can be made straight from the GitHub web interface. On merge to main,
the docs workflow builds the API reference and
the community site, rebuilds the MkDocs site and publishes all three to GitHub
Pages, so there is no manual publishing step.
Djehuty needs a SPARQL 1.1 endpoint such as Virtuoso OSE or Jena Fuseki to store its state.
See the deployment guide for the three supported ways to deploy it (Helm chart, container image, or Python package) along with what a production configuration requires and how to upgrade.
Contributions are welcome — code, documentation, bug reports and ideas alike. CONTRIBUTING.md covers how to set up a development environment, run the test suite, and the conventions we follow for branches, commits and pull requests.
The djehuty Community is a place for users and contributors to connect, share ideas and help shape the future of djehuty. Join the monthly Community Hours to meet other users and contributors and discuss recent developments and upcoming work.
To report a vulnerability, please see SECURITY.md.
djehuty is distributed under the GNU Affero General Public License v3.0 or
later. See LICENSE.
- General: info@djehuty.4tu.nl
- Maintainers: a.e.wilczynska@tudelft.nl, g.kuhn@tudelft.nl, k.f.deAraujo@tudelft.nl
- Security issues: security@djehuty.4tu.nl