The histvv server is an Express based web application serving data and documentation for the HistVV Project.
npm install -g github:ubleipzig/histvv
histvv-serverThe histvv server uses the REST API of a BaseX XML database to access and query a collection of XML files conforming to the Histvv Schema. BaseX is expected to be run in client/server mode:
basexhttp -SThe histvv server has been tested with BaseX version 9.4.2.
As an Express application, the histvv server requires Node.js to run. It has been tested with Node version 12.18.0.
The histvv-server command accepts the following command line options:
--portthe port the histvv server listens on (default:3000)--dbthe name of basex database to use (default:histvv)--dbhostthe basex server host (default:localhost)--dbportthe basex server port (default:8984)--userusername of the basex user (default:admin)--passwordpassword of the basex user (default:admin)--statica directory of files to be served by the histvv server in addition to database resources (default: none, see https://github.com/ubleipzig/histvv-data/blob/master/public as an example)--xsla custom XSL stylesheet to post-process the HTML produced by the histvv server (default: none, see https://github.com/ubleipzig/histvv-data/blob/master/custom.xsl as an example)
To serve the data of the Histvv project at Leipzig University run the following commands:
# clone the data repository
git clone https://github.com/ubleipzig/histvv-data.git
# start the database server
basexserver -S
# create and populate the database
# (make sure to use the -w option to preserve white space in the documents)
basex -w -c 'create db histvv ./histvv-data/xml'
# install the histvv server globally
npm install -g github:ubleipzig/histvv
# start the server passing in static data and a custom stylesheet
histvv-server --static ./histvv-data/public --xsl ./histvv-data/custom.xslNow the server can be accessed under http://localhost:3000/. It can be stopped
with the Ctrl-C key combination.
The Dockerfile in this repo allows to build and run a docker container like this:
docker build -t histvv/server .
docker run -ti -p 3000:3000 -e dbhost=10.1.2.3 histvv/serverThis would run a containerized histvv-server connecting to a BaseX database
hosted at 10.1.2.3 (with the default port 8984 and database name histvv).
It would be available at http://localhost:3000/.
The exposed port of the histvv-server and the database it connects to can be overridden from the command line:
docker run -ti \
-p 3003:3000 \
-e dbhost=10.1.2.3 \
-e dbport=8999 \
-e dbname=histvv_leipzig \
histvv/serverWith npm start you can run an instance of the histvv server that reloads
whenever you change the code:
git clone https://github.com/ubleipzig/histvv.git
cd histvv
npm startYou can pass options to the dev server like this:
npm start -- --port 3003 --db histvv_devTo enable debug output run
DEBUG=histvv:* npm startCarsten Milling cmil@hashtable.de
Copyright (C) 2018-2020 Leipzig University Library info@ub.uni-leipzig.de
Histvv is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Histvv is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.