You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
beherbergung/backend
Johannes Lötzsch 298b2e4357
Merge pull request #11 from PluggPreagar/main
11 months ago
..
.clj-kondo backend: template (from swlkup) 11 months ago
data/import backend: import + serve offers from db 11 months ago
nix backend: template (from swlkup) 11 months ago
resources graphiql - init web interface 11 months ago
src backend: allow optional limit for import! 11 months ago
test/beherbergung fixed: test after date was modified in sample-data 11 months ago
.gitattributes backend: template (from swlkup) 11 months ago
.gitignore fixed: default value of :import-file 11 months ago
DB.md backend: template (from swlkup) 11 months ago
README.md Update README.md 11 months ago
project.clj backend: geocode 11 months ago

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.

Installation

Windows

The backend runs clojure. To install clojure you might use leiningen.

java install

But first check to have a java installtion ready to run.

java -version

If not - you can download it e.g. from Adopt. Dowload a LTS and HotSpot Version using the links and commands below "Windows x64 jdk installation". Basically it is just a Unziping and adding PATH to Environment.

lein install

consider download, self-install and run via lein.bat

  • locally
  • or in a folder from your PATH-Variable (call SET in commandline to check)
curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat >lein.bat
lein run

debug

in case of failure you can add detail information by activating verbose-mode

SET VERBOSE=true
lein run

to check using test-data use

set DB_SEED="src/beherbergung/db/seed/test.edn"
lein run