summaryrefslogtreecommitdiff
path: root/operate-merchant.rst
blob: 572c7d6d702e0f8286297117008b1eb7c4fda68b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
..
  This file is part of GNU TALER.
  Copyright (C) 2014, 2015, 2016 INRIA
  TALER is free software; you can redistribute it and/or modify it under the
  terms of the GNU General Public License as published by the Free Software
  Foundation; either version 2.1, or (at your option) any later version.
  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  You should have received a copy of the GNU Lesser General Public License along with
  TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>

  @author Marcello Stanisci
  @author Florian Dold

==============================
Operating the Merchant Backend
==============================

+++++++++++++
Configuration
+++++++++++++

The following data and facilities have to be set up, in order to run an exchange:

* Keying
* Currency
* Database
* Instances
* Exchanges

------
Keying
------

The merchant backend can serve HTTP over both TCP and UNIX domain socket.

The following values are to be configured under the section `[merchant]`:

* `SERVE`: must be set to `tcp` to serve HTTP over TCP, or `unix` to serve HTTP over a UNIX domain socket
* `PORT`: set to the TCP port to listen on if `SERVE` is `tcp`.
* `UNIXPATH`: set to the UNIX domain socket path to listen on if `SERVE` is `unix`
* `UNIXPATH_MODE`: number giving the mode with the access permission mask for the `UNIXPATH` (i.e. 660 = rw-rw----).

--------
Currency
--------

The merchant backend supports only one currency. This data is set under the respective
option `currency` in section `[taler]`.

--------
Database
--------

The option `db` under section `[merchant]` gets the DB backend's name the merchant
is going to use. So far, only `db = postgres` is supported. After choosing the backend,
it is mandatory to supply the connection string (namely, the database name). This is
possible in two ways:

* via an environment variable: `TALER_MERCHANTDB_POSTGRES_CONFIG`.
* via configuration option `config`, under section `[merchantdb-BACKEND]`. For example, the demo merchant is configured as follows:

.. code-block:: text

  [merchant]
  ...
  db = postgres
  ...

  [merchantdb-postgres]
  config = postgres:///talerdemo