summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMS <ms@taler.net>2022-09-28 10:43:37 +0200
committerMS <ms@taler.net>2022-09-28 10:43:37 +0200
commit697e9cc5c3bd0d5450788aee375445da84e3343c (patch)
tree050d5b9652f1da5396ceb0a300aba2724859f09d
parent1b893b691f6dfcea09affc0b2c7a2dbcdea69bbc (diff)
downloaddeployment-697e9cc5c3bd0d5450788aee375445da84e3343c.tar.gz
deployment-697e9cc5c3bd0d5450788aee375445da84e3343c.tar.bz2
deployment-697e9cc5c3bd0d5450788aee375445da84e3343c.zip
Docker: merchant starts
-rw-r--r--docker/hybrid/docker-compose.yml8
-rw-r--r--docker/hybrid/images/base/Dockerfile16
-rw-r--r--docker/hybrid/images/exchange/Dockerfile7
-rw-r--r--docker/hybrid/images/exchange/startup.sh33
-rw-r--r--docker/hybrid/images/exchange/taler.conf7
-rw-r--r--docker/hybrid/images/merchant/Dockerfile6
-rw-r--r--docker/hybrid/images/merchant/startup.sh32
-rw-r--r--docker/hybrid/images/merchant/taler.conf24
8 files changed, 115 insertions, 18 deletions
diff --git a/docker/hybrid/docker-compose.yml b/docker/hybrid/docker-compose.yml
index 9d6fc94..ede1dc5 100644
--- a/docker/hybrid/docker-compose.yml
+++ b/docker/hybrid/docker-compose.yml
@@ -10,3 +10,11 @@ services:
build: ./images/exchange
depends_on:
- talerdb
+ ports:
+ - 5555:80
+ merchant:
+ build: ./images/merchant
+ depends_on:
+ - talerdb
+ ports:
+ - 5556:80
diff --git a/docker/hybrid/images/base/Dockerfile b/docker/hybrid/images/base/Dockerfile
index 5b8b94d..9e4d487 100644
--- a/docker/hybrid/images/base/Dockerfile
+++ b/docker/hybrid/images/base/Dockerfile
@@ -6,10 +6,12 @@ RUN apt-get install -y autoconf autopoint libtool texinfo \
libjansson-dev python3-pip git recutils libsqlite3-dev \
libpq-dev postgresql libcurl4-openssl-dev libsodium-dev git \
libqrencode-dev zip jq nodejs npm openjdk-17-jre nginx procps \
- curl python3-jinja2
+ curl python3-jinja2 wget curl
RUN git clone git://git.gnunet.org/libmicrohttpd
RUN git clone git://git.gnunet.org/gnunet
+RUN git clone git://git.taler.net/exchange /exchange
+RUN git clone git://git.taler.net/merchant /merchant
WORKDIR /libmicrohttpd
RUN ./bootstrap
@@ -21,4 +23,14 @@ RUN ./bootstrap
RUN ./configure --enable-logging=verbose --disable-documentation
RUN make install
-RUN dpkg -L python3-jinja2
+WORKDIR /exchange
+RUN ./bootstrap
+RUN ./configure CFLAGS="-ggdb -O0" --enable-logging=verbose --disable-doc
+RUN make install
+
+WORKDIR /merchant
+RUN ./bootstrap
+RUN ./configure CFLAGS="-ggdb -O0" \
+ --enable-logging=verbose \
+ --disable-doc
+RUN make install
diff --git a/docker/hybrid/images/exchange/Dockerfile b/docker/hybrid/images/exchange/Dockerfile
index 0289729..4f744a5 100644
--- a/docker/hybrid/images/exchange/Dockerfile
+++ b/docker/hybrid/images/exchange/Dockerfile
@@ -1,13 +1,6 @@
FROM taler_local/taler_base
-RUN git clone git://git.taler.net/exchange /exchange
-
-WORKDIR /exchange
-RUN ./bootstrap
-RUN ./configure CFLAGS="-ggdb -O0" --enable-logging=verbose --disable-doc
-RUN make install
COPY taler.conf /config/taler.conf
COPY startup.sh /
RUN chmod +x /startup.sh
-
ENTRYPOINT /startup.sh
diff --git a/docker/hybrid/images/exchange/startup.sh b/docker/hybrid/images/exchange/startup.sh
index 6d26550..9fe4052 100644
--- a/docker/hybrid/images/exchange/startup.sh
+++ b/docker/hybrid/images/exchange/startup.sh
@@ -3,7 +3,8 @@
set -eu
export LD_LIBRARY_PATH=/usr/local/lib
-sed -i 's/\${EXCHANGE_URL}/http:\/\/exchange.example.com\//' /config/taler.conf
+sed -i 's/\${EXCHANGE_URL}/http:\/\/exchange:80\//' /config/taler.conf
+sed -i 's/\${CURRENCY}/EUR/' /config/taler.conf
while ! pg_isready -h talerdb -d taler; do
echo DB not ready yet.
@@ -14,12 +15,28 @@ echo Now DB is ready.
# Make sure we have the right to connect
echo "" | psql -h talerdb -d taler
-taler-exchange-dbinit -L DEBUG -c /config/taler.conf # --reset # &> /dev/null
+taler-exchange-dbinit -c /config/taler.conf --reset # &> /dev/null
-#taler-exchange-secmod-eddsa -c /config/taler.conf &
-#taler-exchange-secmod-rsa -c /config/taler.conf &
-#taler-exchange-secmod-cs -c /config/taler.conf &
+taler-exchange-secmod-eddsa -c /config/taler.conf &
+taler-exchange-secmod-rsa -c /config/taler.conf &
+taler-exchange-secmod-cs -c /config/taler.conf &
+echo "Crypto helpers started.."
+EXCHANGE_MASTER_PUB=$(taler-exchange-offline -c /config/taler.conf setup)
+sed -i "s/\${EXCHANGE_MASTER_PUB}/$EXCHANGE_MASTER_PUB/" /config/taler.conf
+taler-exchange-httpd -c /config/taler.conf &
+for n in `seq 1 80`
+ do
+ echo "."
+ sleep 0.1
+ OK=1
+ wget http://exchange/ -o /dev/null -O /dev/null >/dev/null && break
+ OK=0
+ done
+ if [ 1 != $OK ]
+ then
+ echo "Failed to launch Exchange"
+ fi
+echo Echange launched.
-#EXCHANGE_MASTER_PUB=$(taler-exchange-offline -c /config/taler.conf setup)
-#sed -i "s/\${EXCHANGE_MASTER_PUB}/$EXCHANGE_MASTER_PUB/" /config/taler.conf
-#taler-exchange-httpd -c /config/taler.conf
+taler-exchange-offline -c /config/taler.conf download sign upload
+wait
diff --git a/docker/hybrid/images/exchange/taler.conf b/docker/hybrid/images/exchange/taler.conf
index ca78bf6..dd93b3d 100644
--- a/docker/hybrid/images/exchange/taler.conf
+++ b/docker/hybrid/images/exchange/taler.conf
@@ -5,6 +5,9 @@
# CURRENCY
# EXCHANGE_MASTER_PUB
+[taler]
+currency = ${CURRENCY}
+
[paths]
taler_data_home = /data
@@ -36,7 +39,9 @@ privacy_dir = /usr/local/share/taler/exchange/pp
terms_dir = /usr/local/share/taler/exchange/tos
base_url = ${EXCHANGE_URL}
unixpath = /sockets/exchange.sock
-serve = unix
+serve = tcp
+port = 80
+# serve = unix
[exchangedb-postgres]
config = postgres://talerdb/taler
diff --git a/docker/hybrid/images/merchant/Dockerfile b/docker/hybrid/images/merchant/Dockerfile
new file mode 100644
index 0000000..4f744a5
--- /dev/null
+++ b/docker/hybrid/images/merchant/Dockerfile
@@ -0,0 +1,6 @@
+FROM taler_local/taler_base
+
+COPY taler.conf /config/taler.conf
+COPY startup.sh /
+RUN chmod +x /startup.sh
+ENTRYPOINT /startup.sh
diff --git a/docker/hybrid/images/merchant/startup.sh b/docker/hybrid/images/merchant/startup.sh
new file mode 100644
index 0000000..eade50f
--- /dev/null
+++ b/docker/hybrid/images/merchant/startup.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+set -eu
+export LD_LIBRARY_PATH=/usr/local/lib
+
+while ! pg_isready -h talerdb -d taler; do
+ echo DB not ready yet.
+ sleep 2
+done
+echo Now DB is ready.
+
+for n in `seq 1 80`
+ do
+ echo "."
+ sleep 0.1
+ OK=1
+ wget http://exchange/ -o /dev/null -O /dev/null >/dev/null && break
+ OK=0
+ done
+ if [ 1 != $OK ]
+ then
+ echo "Exchange unreachable."
+ fi
+echo Echange reachable.
+
+EXCHANGE_MASTER_PUB=$(curl -s http://exchange/keys | jq -r .master_public_key)
+echo Found Exchange Pub: $EXCHANGE_MASTER_PUB
+sed -i 's/\${EXCHANGE_URL}/http:\/\/exchange\//' /config/taler.conf
+sed -i "s/\${EXCHANGE_PUB}/${EXCHANGE_MASTER_PUB}/" /config/taler.conf
+sed -i 's/\${CURRENCY}/EUR/' /config/taler.conf
+taler-merchant-dbinit -c /config/taler.conf --reset
+taler-merchant-httpd -c /config/taler.conf
diff --git a/docker/hybrid/images/merchant/taler.conf b/docker/hybrid/images/merchant/taler.conf
new file mode 100644
index 0000000..cd50bba
--- /dev/null
+++ b/docker/hybrid/images/merchant/taler.conf
@@ -0,0 +1,24 @@
+[taler]
+currency = ${CURRENCY}
+
+[paths]
+TALER_DATA_HOME = /data
+
+[merchant-exchange-${CURRENCY}]
+currency = ${CURRENCY}
+exchange_base_url = http://exchange/
+master_key = ${EXCHANGE_PUB}
+
+[merchantdb-postgres]
+config = postgres://talerdb/taler
+
+[merchant]
+default_max_deposit_fee = ${CURRENCY}:0.05
+default_max_wire_fee = ${CURRENCY}:0.01
+wire_transfer_delay = 0 s
+port = 80
+serve = tcp
+
+[merchant-account-merchant]
+wire_file_mode = 770
+wire_response = ${TALER_DATA_HOME}/merchant/wire/merchant.json