beherbergung/backend
Johannes Lötzsch 78a340a1d0 backend: import first warhelp sample datasets 2022-03-16 18:26:34 +01:00
..
.clj-kondo backend: template (from swlkup) 2022-03-06 23:09:59 +01:00
data/import backend: import + serve offers from db 2022-03-15 02:46:34 +01:00
nix backend: template (from swlkup) 2022-03-06 23:09:59 +01:00
resources graphiql - init web interface 2022-03-09 08:10:35 +01:00
src backend: import first warhelp sample datasets 2022-03-16 18:26:34 +01:00
test/beherbergung fixed: test after date was modified in sample-data 2022-03-09 18:33:49 +01:00
.gitattributes backend: template (from swlkup) 2022-03-06 23:09:59 +01:00
.gitignore fixed: default value of :import-file 2022-03-09 07:43:51 +01:00
DB.md backend: template (from swlkup) 2022-03-06 23:09:59 +01:00
README.md README.md placeholders for components 2022-03-06 22:33:21 +01:00
project.clj backend: geocode 2022-03-15 04:42:52 +01:00

README.md

„beherbergung“ server

The core of the server is an graphql-api based on specialist.

As database the datalog implementation XTDB is used with a RocksDB data store. Some help how to access the database for development/debug purposes can be found in ./DB.md

Running development server

To start the server and send queries, run:

lein run

curl -H 'Content-type: application/json' -d '{"query":"{ TODO }"}' http://localhost:4000/graphql

Testing

lein test

Production build

lein ring uberjar

java -jar target/beherbergung-*standalone.jar

Reproducible builds

Whenever dependencies are changed, rebuild the mvn2nix-lock.json:

nix run ..#backendUpdatedDeps

This allows to build by:

nix build ..#backend

Configuration

Configuration management is done with yogthos. Default values are set at src/config.edn, there you see the available options. In .lein-env.example you find the variables you should set yourself. To set config options at runtime, use environment variables, java system properties or an .edn file specified using the config environment variable.

Notes to developers

State management

Global state (e.g. instances of database and webserver) are managed by mount.