Skip to content

roelj/djehuty

 
 

Repository files navigation

djehuty

This software provides a general data and software repository system that attempts to promote active re-use of data and software by providing a rock-solid foundation of implementations of protocols and standards related to its aims.

Reporting (potential) security issues

For security-related matters, please e-mail security@djehuty.roelj.com. If you are (going to be) running an instance of this project and would like to be part of the security mailing list, then please write the mailing list.

Creating a development environment

This project uses the GNU autotools build system.

GNU/Linux

For development on GNU/Linux we recommend installing git, autoconf, automake, make and typst through your system's package manager, followed by creating a Python virtual environment for djehuty:

git clone https://codeberg.org/roelj/djehuty.git && cd djehuty/
autoreconf -if && ./configure
python -m venv ../djehuty-env
. ../djehuty-env/bin/activate
pip install --upgrade pip
pip install --editable .

Keeping your development environment up-to-date

Because the virtual environment isn't updated by your system's package manager, you can use the following snippet to update packages inside your virtual environment:

pip freeze | grep -v "djehuty.git" | cut -d= -f1 | xargs -n1 pip install -U

macOS X

For development on Apple's macOS X, we recommend installing python3, git, autoconf, automake, and make through homebrew, followed by creating a Python virtual environment for djehuty:

brew install python3 git autoconf automake make typst
git clone https://codeberg.org/roelj/djehuty.git && cd djehuty/
autoreconf -if && ./configure
python3 -m venv ../djehuty-env
. ../djehuty-env/bin/activate
pip install --upgrade pip
pip install --editable .

Keeping your development environment up-to-date

Because the virtual environment isn't updated by homebrew, you can use the following snippet to update packages inside your virtual environment:

pip freeze | grep -v "djehuty.git" | cut -d= -f1 | xargs -n1 pip install -U

Microsoft Windows

For development on Windows we recommend MSYS2 and the following approach to installing packages:

PREFIX="mingw-w64-x86_64-" # See https://www.msys2.org/docs/package-naming
pacman -Suy git autoconf automake make ${PREFIX}python \
            ${PREFIX}python-pygit2 ${PREFIX}python-rdflib \
            ${PREFIX}python-jinja ${PREFIX}python-requests \
            ${PREFIX}python-werkzeug ${PREFIX}python-defusedxml \
            ${PREFIX}python-pillow ${PREFIX}python-build \
            ${PREFIX}python-setuptools ${PREFIX}typst
git clone https://codeberg.org/roelj/djehuty.git && cd djehuty/
# If you chose a different PREFIX above, change /mingw64 accordingly below.
# See: https://www.msys2.org/docs/environments
/mingw64/bin/python -m venv --system-site-packages ../djehuty-env
. ../djehuty-env/bin/activate
autoreconf -if && ./configure
pip install --editable .

Keeping your development environment up-to-date

The dependencies for djehuty are installed via pacman, so to update those packages use the following snippet:

pacman -Suy

See Updating MSYS2 for more details.

Verify that the installation works

Upon completing the installation, you should be able to run:

djehuty --help

Setting up the database

Djehuty needs a SPARQL 1.1 endpoint such as Virtuoso OSE or Jena Fuseki to store its state.

Run the web service

To start the web service, we recommend copying the example configuration and go from there:

cp etc/djehuty/djehuty-example-config.xml djehuty.xml

First run

Upon first run, djehuty needs to initialize the database with categories, licences and accounts. To do so, pass the --initialize option to the djehuty web command:

djehuty web --initialize --config-file djehuty.xml

Subsequent runs

After the database has been initialized, you can remove the --initialize option:

djehuty web --config-file=djehuty.xml

About

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 66.1%
  • JavaScript 14.3%
  • HTML 13.0%
  • CSS 4.4%
  • Makefile 1.9%
  • Dockerfile 0.2%
  • Other 0.1%