summaryrefslogtreecommitdiff
path: root/libeufin/bank-manual.rst
diff options
context:
space:
mode:
Diffstat (limited to 'libeufin/bank-manual.rst')
-rw-r--r--libeufin/bank-manual.rst116
1 files changed, 116 insertions, 0 deletions
diff --git a/libeufin/bank-manual.rst b/libeufin/bank-manual.rst
new file mode 100644
index 00000000..40e047db
--- /dev/null
+++ b/libeufin/bank-manual.rst
@@ -0,0 +1,116 @@
+.. target audience: operator, developer
+
+Bank Manual
+###########
+
+.. contents:: Table of Contents
+
+LibEuFin Bank implements a simple core banking system with
+account and REST APIs, including REST APIs for a Web interface
+and REST APIs to interact with GNU Taler components.
+
+In this manual, we explain how to setup a bank.
+
+Installing Bank
+===============
+
+The following section was tested on an *OpenJDK 17* environment.
+
+Building from source
+--------------------
+
+Bank belongs to the LibEuFin project, and can be downloaded via Git:
+
+.. code-block:: console
+
+ $ git clone git://git.taler.net/libeufin
+
+Note that Kotlin and Gradle should already work on the host system.
+
+Navigate into the *libeufin* local repository, and from top-level run:
+
+.. code-block:: console
+
+ $ ./bootstrap
+ $ ./configure --prefix=$PREFIX
+ $ make install-bank
+
+If the previous steps succeeded, the ``libeufin-bank`` command should
+be found in the $PATH.
+
+Setting up the LibEuFin Bank
+============================
+
+The following snippet shows the mandatory configuration values.
+
+.. code-block:: console
+
+ [libeufin-bank]
+ CURRENCY = KUDOS
+
+ # Debt limit
+ DEFAULT_CUSTOMER_DEBT_LIMIT = KUDOS:0
+ DEFAULT_ADMIN_DEBT_LIMIT = KUDOS:200000000
+
+ # Server
+ SERVE = tcp
+ PORT = 8080
+
+ [libeufin-bankdb-postgres]
+ CONFIG = postgresql:///libeufinbank
+
+.. note::
+ Refer to the manpage ``libeufin-man.conf(5)``
+ for the full array of configuration values.
+
+Assuming that the configuration file exists at ``$config_file``, the following
+command would define the database schema and create an admin account.
+
+.. code-block:: console
+
+ libeufin-bank dbinit -c $config_file
+
+If you wish to authenticate as admin, you must change the account password.
+
+.. code-block:: console
+
+ libeufin-bank passwd -c $config_file admin $PASSWORD
+
+Then you can start the HTTP server.
+
+.. code-block:: console
+
+ libeufin-bank serve -c $config_file
+
+Enable regional currency conversion
+===================================
+
+.. note::
+ You need to have LibEuFin Nexus running to enable conversion.
+ Refers to ``nexus-manual.conf`` for more details.
+
+First you have to create an exchange account with username ``exchange``.
+
+TODO
+
+Then you have to enable conversion in configuration and enable at least one TAN channel for cashout.
+
+.. code-block:: console
+
+ [libeufin-bank]
+ ALLOW_CONVERSION = yes
+
+ TAN_SMS = libeufin-tan-sms.sh
+ # And/Or
+ TAN_EMAIL = libeufin-tan-email.sh
+
+Assuming that the configuration file exists at ``$config_file``, the following
+command would start the server with conversion API enabled.
+
+.. code-block:: console
+
+ libeufin-bank serve -c $config_file
+
+Finally you have to setup conversion rates though the SPA.
+
+TODO \ No newline at end of file