Skip to content
4TUResearchDataPublic

About

The 4TU.ResearchData and Nikhef repository system

Resources

Code of conduct

Contributing

Security policy

Stars

51 stars

Watchers

7 watching

Forks

Latest commit

 

History

3,319 Commits

Folders and files

Repository files navigation

djehuty

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.

Documentation

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/ and src/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

Building the documentation

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-serve

That 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-md

Remove 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.

Installing and running

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.

Contributing

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.

Community

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.

Security

To report a vulnerability, please see SECURITY.md.

License

djehuty is distributed under the GNU Affero General Public License v3.0 or later. See LICENSE.


Contact information

About

The 4TU.ResearchData and Nikhef repository system

Resources

Code of conduct

Contributing

Security policy

Stars

51 stars

Watchers

7 watching

Forks

Releases

Used by

Contributors

Languages