summaryrefslogtreecommitdiff
path: root/doc/manual.texi
blob: 1db74fca9c12473b213dcdf1566418a624d92a10 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename manual.info
@include version.texi
@settitle Back-office Web service manual @value{VERSION}.

@c Define a new index for options.
@defcodeindex op
@c Combine everything into one index (arbitrarily chosen to be the
@c concept index).
@syncodeindex op cp
@c %**end of header

@copying
Howtos for taler.net admins and developers (version @value{VERSION}, @value{UPDATED}),
Copyright @copyright{} 2017-2018 Taler Systems SA.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end quotation
@end copying
@c If your manual is published on paper by the FSF, it should include
@c The standard FSF Front-Cover and Back-Cover Texts, as given in
@c maintain.texi.
@c
@c Titlepage
@c
@titlepage
@title Back-office Web service manual.
@subtitle Version @value{VERSION}
@subtitle @value{UPDATED}
@author Marcello Stanisci (@email{marcello@@taler.net})
@author Christian Grothoff (@email{grothoff@@taler.net})
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage

@c @summarycontents
@contents

@ifnottex
@node Top
@top Back-office Web service manual.
@insertcopying
@end ifnottex

@menu
* Introduction::                           What is provided by the Web service.
* Installation::                           Where to find the code and how to install it.
* Configuration::                          How to configure the Web service.
* Launching the backoffice::               How to run the Web service.
@end menu

@node Introduction
@chapter Introduction

The back-office Web service allows a merchant to check on the status
of their Taler transactions.  Merchants can check if and when they were
paid by a wire transfer for coins deposited at the exchange.  Also, given
a wire transfer they have received, they can ask which Taler transactions
correspond to the wire transfer.

This manual guides merchant system administrators through the
installation and configuration of this Web service.

@node Installation
@chapter Installation

The back-office Web service code is available at
@code{git://taler.net/backoffice}.  The application can be installed
in a GNU-ish fashion.

@example
# Get the code:
$ git clone git://taler.net/backoffice

# Bootstrap and configure
$ cd backoffice
$ ./bootstrap
# This step will check if the system is ready to
# allow the installation.
$ ./configure --prefix=<PREFIX>
$ make install
@end example

Note that to make the application work @code{<PREFIX>/bin} must be
included in the @code{$PATH}, and
@code{<PREFIX>/lib/python3.5/site-packages/} in @code{$PYTHONPATH}.


@node Configuration
@chapter Configuration

The following information must be provided in the configuration: on which
address the backend should serve the Web site, which currency is used,
and which merchant backend this Web service will work with.

The merchant backend is an important agent, as it is responsible for
returning information about transactions and wire transfers.  The
backoffice Web service is merely a frontend for it.  A separate
manual (available at
@url{https://docs.taler.net/merchant/backend/html/manual.html})
describes the installation and configuration of the merchant backend.

Assuming the reader is familiar with configuration in Taler (if not, read:
@url{https://docs.taler.net/exchange/html/taler-exchange.html#Configuration-format}),
a working configuration example is the following one:

@example

[taler]
# will be EUR, USD, or whatever currency the merchant
# works with.
currency = KUDOS

# each back-office Web service is associated with a "frontend
# name": this name instructs the application which configuration
# section is going to be read.  Thus <name> is the "frontend name"
# and must be specified on the command line via the "--frontend"
# option.  See the 'Run' chapter for more details on launching the
# application.
[backoffice-<name>]

# <how> can be 'html' or 'uwsgi', so as to serve the Web site
# via HTTP or WSGI.
uwsgi_serve = <how>

# those options will be read if the Web site is served via
# WSGI.
uwsgi_unixpath_mode = 660
uwsgi_unixpath = /path/to/backoffice-<name>.uwsgi
uwsgi_unixmode = 666

# this option will be read if the Web site is served via
# HTTP.
http_port = 5959

# specifies which merchant backend is going to be used.
backend = http://backend.test.taler.net/

# Informally speaking, each instance points to both a private
# key that can sign proposals and a bank account that can receive
# wire transfers by some exchange.

# Here, <instance_i> is just a string (with no spaces) that will
# make the referenced instance be traceable by the back-office Web
# application.

instances = <instance_1> <instance_2> ..
@end example

@node Launching the backoffice
@chapter Launching the backoffice

The following example shows how to run the Web service.

@example
# such invocation will work only if the configuration contains
# a section called "[backoffice-myshop]" which looks like the
# example above.

# As of serving, the Web site will be available via HTTP, at the
# port specified in the configuration option "http_port", at localhost.

$ taler-merchant-backoffice --frontend myshop serve-http
@end example

Other options, such as those to serve the site via WSGI, are explained
in the man page and can be listed using the @code{--help} argument.

@bye