Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Static site generator for Simple Knowledge Management Systems (SKOS)

This part of the SkoHub project covers the need to easily publish a controlled vocabulary as a SKOS file, with a basic lookup API and a nice HTML view including links to an inbox for each subject. It consists of two parts: the actual static site generator and a webhook server that allows to trigger a build from GitHub. For usage & implementation details see the blog post.

Set up

$ git clone
$ cd skohub-vocabs
$ npm i
$ cp .env.example .env
$ cp test/data/systematik.ttl data/

The .env file contains configuration details used by the static site generator and the webhook server (like PORT, see below).

After changes to your .env or data/* files, make sure to delete the .cache directory:

$ rm -rf .cache

Running the static site generator

The static site generator will parse all turtle files in ./data and build the vocabularies it finds:

$ npm run build

The build can be found in public/ and be served e.g. by Apache. The directory structure is derived from the URIs of the SKOS concepts, e.g. will be available from public/|.json).

You can also run the development web server:

$ npm run develop

to serve the build from http://localhost:8000/. Again, the URL is based on the SKOS URIs, e.g. http://localhost:8000/

Running the webhook server

The webhook server allows to trigger a build when vocabularies are updated (i.e. changes are merged into the master branch) on GitHub.

Running npm run listen will start the server on the defined PORT and expose a build endpoint. In order to wire this up with GitHub, this has to be available to the public. You can then configure the webhook in your GitHub repositories settings:


Connecting to our webhook server

Feel free to clone to poke around. Go to to set up the web hook (get in touch to receive the secret). Edit and commit the changes to master. This will trigger a build and expose it at

Use start scripts and monit

You may want to use the start scripts in scripts/ to manage via init and to monitor with monit.


Depending on special circumstances you may get errors in the log files, e.g. EMFILE: too many open files. Search our issues for solutions or feel encouraged to open a new issue if you can't find a solution.


The project to create a stable beta version of SkoHub has been funded by the North-Rhine Westphalian Library Service Centre (hbz) and carried out in cooperation with graphthinking GmbH in 2019/2020.


No description or website provided.








No releases published


No packages published