Developing for Knora requires a complete local installation of Knora. The different parts are:
- The cloned Knora Github repository
- One of the supplied triplestores in the Knora Github repository (GraphDB-SE 8 or Fuseki 3).
- Sipi by building from source or using the docker image
Knora Github Repository
$ git clone https://github.com/dhlab-basel/Knora
A number of triplestore implementations are available, including free software as well as proprietary options. Knora is designed to work with any standards-compliant triplestore. It is primarily tested with Ontotext GraphDB, a high-performance, proprietary triplestore. We recommend GraphDB Standard Edition, but GraphDB Free (which is proprietary but available free of charge) also works.
Built-in support and configuration for other triplestores is planned.
See the chapter on Starting GraphDB for more details.
Build Sipi Docker Image
The Sipi docker image needs to be build by hand, as it requires the Kakadu distribution.
To build the image, and push it to the docker hub, follow the following steps:
$ git clone https://github.com/dhlab-basel/docker-sipi (copy the Kakadu distribution ``v7_8-01382N.zip`` to the ``docker-sipi`` directory) $ docker build -t dhlabbasel/sipi $ docker run --name sipi --rm -it -p 1024:1024 dhlabbasel/sipi (Ctrl-c out of terminal will stop and delete container) $ docker push dhlabbasel/sipi
Pushing the image to the docker hub requires prior authentication with
$ docker login. The user needs to be registered on
Also, the user needs to be allowed to push to the
To use the docker image stored locally or on the docker hub repository type:
$ docker run --name sipi -d -p 1024:1024 dhlabbasel/sipi
This will create and start a docker container with the
image in the background. The default behaviour is to start Sipi by
calling the following command:
$ /sipi/local/bin/sipi -config /sipi/config/sipi.knora-test-config.lua
To override this default behaviour, start the container by supplying another config file:
$ docker run --name sipi \ -d \ -p 1024:1024 \ dhlabbasel/sipi \ /sipi/local/bin/sipi -config /sipi/config/sipi.config.lua
You can also mount a directory (the local directory in this example), and use a config file that is outside of the docker container:
$ docker run --name sipi \ -d \ -p 1024:1024 \ -v $PWD:/localdir \ dhlabbasel/sipi \ /sipi/local/bin/sipi -config /localdir/sipi.knora-test-config.lua
The Knora-API server uses Redis for caching.
On macOS you can install Redis through Homebrew:
$ brew install redis
If you don't want to use Redis, you can disable caching in
app.use-redis-cache key, by setting it to