libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

README (2829B)


      1 Installing LibEuFin
      2 ===================
      3 
      4 Although different versions of Java may support this project,
      5 the following steps were verified with Java 17.0.6.
      6 
      7 The following dependencies (names match Debian packages) should
      8 be available before trying the installation:
      9 
     10 - make
     11 - python3-venv
     12 - openjdk-17-jre-headless
     13 
     14 Run the following steps to install LibEuFin:
     15 
     16 $ ./bootstrap
     17 $ ./configure --prefix=$PFX
     18 $ make install
     19 
     20 If the previous step succeeded, libeufin-nexus and a command line
     21 client (libeufin-cli) should be found under $PFX/bin.  Additionally,
     22 the libeufin-bank command used for testing should be found under
     23 $PFX/bin as well.
     24 
     25 Running tests
     26 =============
     27 
     28 Tests need a PostgreSQL database called "libeufincheck".
     29 If the database setup is correct and LibEuFin is installed,
     30 the following command runs all the test cases:
     31 
     32   $ make check
     33 
     34 Launching LibEuFin
     35 ==================
     36 
     37 Launch Nexus:
     38 
     39 $ libeufin-nexus serve --with-db=jdbc:postgres://localhost:5433/$DB_NAME?user=foo&password=bar
     40 
     41 More instructions about configuring and setting Libeufin
     42 are available at this link:
     43 
     44 https://docs.taler.net/libeufin/nexus-tutorial.html
     45 
     46 Exporting a dist-file
     47 =====================
     48 
     49 $ ./bootstrap
     50 $ make dist
     51 
     52 The TGZ file should be found at: build/distributions/libeufin-$VERSION-sources.tar.gz
     53 
     54 The program version comes from `git describe --tags --always --abbrev=8` at
     55 build time. The source archive includes this value in a root `.version` file,
     56 which Gradle uses when Git metadata is unavailable. Git takes precedence over
     57 any existing `.version` in a checkout. A source tree without either Git metadata
     58 or a nonempty single-line `.version` cannot be built. No build fetches Git tags
     59 or history; an untagged shallow checkout reports its abbreviated commit hash.
     60 
     61 Exporting an archive with the three executables
     62 ===============================================
     63 
     64 Such archive contains the compiled Bank and Nexus,
     65 and the CLI script.
     66 
     67 $ ./bootstrap # Needed to silence 'GNU make'
     68 $ make exec-arch
     69 
     70 Alternatively, the same archive is produced by:
     71 
     72 $ ./gradlew execArch
     73 
     74 The archive should be found at: build/distributions/libeufin-$VERSION.zip
     75 
     76 After extracting the compressed files, run the three
     77 executable found under the "bin/" folder.
     78 
     79 User interface
     80 ==============
     81 
     82 The LibEuFin Bank WebUI is built separately from the
     83 `libeufin-bank-webui` package in taler-typescript-core:
     84 https://git.taler.net/taler-typescript-core.git/tree/packages/libeufin-bank-webui
     85 
     86 The `libeufin-bank` Debian package depends on `libeufin-bank-webui` and
     87 serves its installed files from `$PREFIX/share/libeufin-bank-webui/`.
     88 When those files are unavailable, the bank serves a small fallback page
     89 with installation guidance.
     90 
     91 Note: the UI is an independent Web app that could even be served
     92 from a different host than the one running the backend.