diff options
author | MS <ms@taler.net> | 2022-09-28 10:43:37 +0200 |
---|---|---|
committer | MS <ms@taler.net> | 2022-09-28 10:43:37 +0200 |
commit | 697e9cc5c3bd0d5450788aee375445da84e3343c (patch) | |
tree | 050d5b9652f1da5396ceb0a300aba2724859f09d | |
parent | 1b893b691f6dfcea09affc0b2c7a2dbcdea69bbc (diff) | |
download | deployment-697e9cc5c3bd0d5450788aee375445da84e3343c.tar.gz deployment-697e9cc5c3bd0d5450788aee375445da84e3343c.tar.bz2 deployment-697e9cc5c3bd0d5450788aee375445da84e3343c.zip |
Docker: merchant starts
-rw-r--r-- | docker/hybrid/docker-compose.yml | 8 | ||||
-rw-r--r-- | docker/hybrid/images/base/Dockerfile | 16 | ||||
-rw-r--r-- | docker/hybrid/images/exchange/Dockerfile | 7 | ||||
-rw-r--r-- | docker/hybrid/images/exchange/startup.sh | 33 | ||||
-rw-r--r-- | docker/hybrid/images/exchange/taler.conf | 7 | ||||
-rw-r--r-- | docker/hybrid/images/merchant/Dockerfile | 6 | ||||
-rw-r--r-- | docker/hybrid/images/merchant/startup.sh | 32 | ||||
-rw-r--r-- | docker/hybrid/images/merchant/taler.conf | 24 |
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 |