Installing LibEuFin
===================

Although different versions of Java may support this project,
the following steps were verified with Java 17.0.6.

The following dependencies (names match Debian packages) should
be available before trying the installation:

- make
- python3-venv
- openjdk-17-jre-headless

Run the following steps to install LibEuFin:

$ ./bootstrap
$ ./configure --prefix=$PFX
$ make install

If the previous step succeeded, libeufin-nexus and a command line
client (libeufin-cli) should be found under $PFX/bin.  Additionally,
the libeufin-bank command used for testing should be found under
$PFX/bin as well.

Running tests
=============

Tests need a PostgreSQL database called "libeufincheck".
If the database setup is correct and LibEuFin is installed,
the following command runs all the test cases:

  $ make check

Launching LibEuFin
==================

Launch Nexus:

$ libeufin-nexus serve --with-db=jdbc:postgres://localhost:5433/$DB_NAME?user=foo&password=bar

More instructions about configuring and setting Libeufin
are available at this link:

https://docs.taler.net/libeufin/nexus-tutorial.html

Exporting a dist-file
=====================

$ ./bootstrap
$ make dist

The TGZ file should be found at: build/distributions/libeufin-$VERSION-sources.tar.gz

Exporting an archive with the three executables
===============================================

Such archive contains the compiled Bank and Nexus,
and the CLI script.

$ ./bootstrap # Needed to silence 'GNU make'
$ make exec-arch

Alternatively, the same archive is produced by:

$ ./gradlew execArch

The archive should be found at: build/distributions/libeufin-$VERSION.zip

After extracting the compressed files, run the three
executable found under the "bin/" folder.

User interface
==============

This repository does not ship any UI, rather it downloads
one from the following project along the "make deb" target:
https://git.taler.net/wallet-core.git/tree/packages/bank-ui

This way, the libeufin-bank Debian package provides one
self-contained solution including Nginx, LibEuFin Bank,
and the UI.

Note: the UI an independent Web app that could even be served
from a different host than the one running the backend.
