Relaunch of BARTOC.org web interface
This repository contains the new web interface of BARTOC.org, run by VZG.
- Keep all BARTOC URIs and most URLs
- Provide a nice web interface, possibly multilingual
- Use JSKOS API as backend
- Serve HTML, JSKOS, and RDF
Requires at least Node.js 18 and an instance of jskos-server to connect to. Additional dependencies are listed in package.json
.
git clone https://github.com/gbv/bartoc.org.git
cd bartoc.org
npm ci
You can also set up BARTOC via Docker. Please refer to our Docker docs.
A setup script is provided in ./bin/setup.sh
. It must be called with the path to your jskos-server installation, e.g.:
./bin/setup.sh ../jskos-server
Basic configuration is located in config/config.default.json
. Selected fields can be overridden in a local config/config.json
. The latter should at least include a link to a JSKOS server instance, e.g.:
{
"backend": {
"provider": "ConceptApi",
"api": "http://localhost:3000/"
}
}
To be able to log in, add, and edit vocabularies, you need to setup and configure an instance of Login Server as well (example for local installation):
{
"login": {
"api": "localhost:3004/",
"ssl": false
}
}
To be able to use the full functionality of BARTOC, your jskos-server installation must allow concept schemes to be written via the API, e.g.:
{
"schemes": {
"read": {
"auth": false
},
"create": {
"auth": true
},
"update": {
"auth": true,
"crossUser": true
}
}
}
Via an array identities
under schemes
, you can limit which identity URIs can write vocabulary data.
npm run dev
The application is made available at http://localhost:3883/.
For maintainers only
Never work on the main branch directly. Always make changes on dev
and then run the release script:
npm run release:patch # or minor or major
The application is deployed at https://bartoc.org/.
Update an existing installation:
git pull
npm install
pm2 restart bartoc.org
Note that NODE_ENV
has to be set to production
, otherwise Vue files will be requested from the dev server. This is given when using npm run start
.
To regularly update dumps, add a cronjob with command npm run dump update
. Dumps will be placed in directory data/dumps
and statistics are placed in data/reports
. To compare two dump files run npm run dump diff
.