[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-deployment] 01/02: docker MVP
From: |
gnunet |
Subject: |
[taler-deployment] 01/02: docker MVP |
Date: |
Thu, 06 Oct 2022 12:02:51 +0200 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository deployment.
commit dd8235565941b7c51be789415db4c431000d62e5
Author: MS <ms@taler.net>
AuthorDate: Wed Oct 5 16:49:42 2022 +0200
docker MVP
---
docker/hybrid/docker-compose.yml | 5 +++--
docker/hybrid/images/base/Dockerfile | 13 ++++++++++--
docker/hybrid/images/exchange/startup.sh | 11 +++++++++--
docker/hybrid/images/libeufin/startup.sh | 8 +++++++-
docker/hybrid/images/merchant/startup.sh | 34 ++++++++++++++++++++++++++------
docker/hybrid/images/merchant/taler.conf | 16 +++++++++------
docker/hybrid/test-docker-mvp.sh | 9 +++++++++
7 files changed, 77 insertions(+), 19 deletions(-)
diff --git a/docker/hybrid/docker-compose.yml b/docker/hybrid/docker-compose.yml
index 22e9da3..4217eec 100644
--- a/docker/hybrid/docker-compose.yml
+++ b/docker/hybrid/docker-compose.yml
@@ -20,9 +20,10 @@ services:
- talerdb
ports:
- 5556:80
+ - 5559:8080 # Blog
bank:
build: ./images/libeufin
ports:
- - 5557:5000 # Sandbox
- - 5558:5001 # Nexus
+ - 5000:5000 # Sandbox
+ - 5001:5001 # Nexus
diff --git a/docker/hybrid/images/base/Dockerfile
b/docker/hybrid/images/base/Dockerfile
index cd2cf4c..380b949 100644
--- a/docker/hybrid/images/base/Dockerfile
+++ b/docker/hybrid/images/base/Dockerfile
@@ -6,15 +6,17 @@ 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 wget curl python3-sphinx python3-sphinx-rtd-theme
+ curl python3-jinja2 wget curl python3-sphinx \
+ socat python3-sphinx-rtd-theme
-RUN pip3 install requests click
+RUN pip3 install requests click poetry uwsgi
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
RUN git clone git://git.taler.net/libeufin /libeufin
+RUN git clone git://git.taler.net/taler-merchant-demos /taler-merchant-demos
WORKDIR /libmicrohttpd
RUN ./bootstrap
@@ -42,3 +44,10 @@ WORKDIR /libeufin
RUN ./bootstrap
RUN ./configure
RUN make install
+
+WORKDIR /taler-merchant-demos
+RUN ./bootstrap
+RUN ./configure
+RUN make install
+
+WORKDIR /
diff --git a/docker/hybrid/images/exchange/startup.sh
b/docker/hybrid/images/exchange/startup.sh
index f770985..c566d76 100644
--- a/docker/hybrid/images/exchange/startup.sh
+++ b/docker/hybrid/images/exchange/startup.sh
@@ -8,9 +8,10 @@ EXCHANGE_NEXUS_USERNAME=exchange-at-nexus
EXCHANGE_NEXUS_PASSWORD=x
EXCHANGE_IBAN=DE159593
TALER_FACADE_NAME=taler-facade
+CURRENCY=EUR
sed -i 's/__EXCHANGE_URL__/http:\/\/exchange\//' /config/taler.conf
-sed -i 's/__CURRENCY__/EUR/' /config/taler.conf
+sed -i "s/__CURRENCY__/${CURRENCY}/" /config/taler.conf
sed -i "s/__EXCHANGE_NEXUS_USERNAME__/${EXCHANGE_NEXUS_USERNAME}/"
/config/taler.conf
sed -i "s/__EXCHANGE_NEXUS_PASSWORD__/${EXCHANGE_NEXUS_PASSWORD}/"
/config/taler.conf
sed -i "s/__EXCHANGE_IBAN__/${EXCHANGE_IBAN}/" /config/taler.conf
@@ -50,5 +51,11 @@ for n in `seq 1 80`
echo Echange launched.
taler-exchange-wirewatch -L DEBUG -c /config/taler.conf &
-taler-exchange-offline -c /config/taler.conf download sign upload
+taler-exchange-offline -c /config/taler.conf \
+ download sign \
+ enable-account
"payto://iban/SANDBOXX/${EXCHANGE_IBAN}?receiver-name=Exchange+Company" \
+ wire-fee now iban ${CURRENCY}:0.01 ${CURRENCY}:0.01 ${CURRENCY}:0.01 \
+ global-fee now ${CURRENCY}:0.01 ${CURRENCY}:0.01 ${CURRENCY}:0.01
${CURRENCY}:0.01 1h 1h 1year 5 \
+ upload
+
wait
diff --git a/docker/hybrid/images/libeufin/startup.sh
b/docker/hybrid/images/libeufin/startup.sh
index 5389c31..4c35cdb 100644
--- a/docker/hybrid/images/libeufin/startup.sh
+++ b/docker/hybrid/images/libeufin/startup.sh
@@ -31,18 +31,24 @@ is_serving() {
echo $2 reachable.
}
+EXCHANGE_IBAN=DE159593
+
export LIBEUFIN_SANDBOX_DB_CONNECTION="jdbc:sqlite:/libeufin.sqlite3"
export LIBEUFIN_SANDBOX_ADMIN_PASSWORD=secret
export LIBEUFIN_SANDBOX_URL="http://localhost:5000/demobanks/default"
echo -n "Creating EUR default demobank..."
libeufin-sandbox config --currency EUR default
echo DONE
+echo -n "Specify default exchange..."
+libeufin-sandbox default-exchange \
+ http://localhost:5555/ \
+ "payto://iban/SANDBOXX/${EXCHANGE_IBAN}?receiver-name=Exchange+Company"
+echo DONE
echo -n "Launching Sandbox..."
libeufin-sandbox serve --no-localhost-only &
echo DONE
is_serving 5000 Sandbox
-EXCHANGE_IBAN=DE159593
EXCHANGE_SANDBOX_USERNAME=exchange-at-sandbox
EXCHANGE_SANDBOX_PASSWORD=x
echo -n "Register the Exchange at Sandbox..."
diff --git a/docker/hybrid/images/merchant/startup.sh
b/docker/hybrid/images/merchant/startup.sh
index eeb9bde..d1b7994 100644
--- a/docker/hybrid/images/merchant/startup.sh
+++ b/docker/hybrid/images/merchant/startup.sh
@@ -24,17 +24,39 @@ for n in `seq 1 30`
fi
echo Echange reachable.
+#FIXME: wallets external to the containers put localhost'ed
+# exchanges along a /pay request. That breaks here, since the
+# exchange listens from another container. The following
+# command routes every request to 5555 (port on the host
+# system that points to a contained exchange AND where the
+# merchant tries to /deposit), to the container where the exchange listens.
+socat TCP-LISTEN:5555,fork,reuseaddr TCP:exchange:80 &
+
+CURRENCY=EUR
+BACKEND_APIKEY=secret
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
-
+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__/${CURRENCY}/" /config/taler.conf
+sed -i "s/__BACKEND_APIKEY__/${BACKEND_APIKEY}/" /config/taler.conf
+echo -n "Reset database..."
taler-merchant-dbinit -c /config/taler.conf --reset
+echo DONE
+echo -n "Launch merchant backend..."
taler-merchant-httpd -c /config/taler.conf &
+echo DONE
sleep 1
-
+echo -n "Create default instance..."
curl -s -H "Content-Type: application/json" -X POST -d
'{"auth":{"method":"external"},"payto_uris":["payto://iban/SANDBOXX/DE474361?receiver-name=Merchant43"],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"EUR:1",
"default_max_deposit_fee":"EUR:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us"
: 3600000000},"default_pay_delay":{"d_us": 3600000000}}'
http://merchant/management/instances
+echo DONE
+
+# FIXME: the command below works around a known bug,
+# where demo sites ingnore the "-c" option.
+# mkdir ${HOME}/.config/
+# ln -s /config/taler.conf ${HOME}/.config/
+# echo -n "Launch blog..."
+# ${HOME}/.local/bin/taler-merchant-demos --http-port 8080 blog &
+# echo DONE
-echo Default instance created.
wait
diff --git a/docker/hybrid/images/merchant/taler.conf
b/docker/hybrid/images/merchant/taler.conf
index cd50bba..81aa5cc 100644
--- a/docker/hybrid/images/merchant/taler.conf
+++ b/docker/hybrid/images/merchant/taler.conf
@@ -1,20 +1,20 @@
[taler]
-currency = ${CURRENCY}
+currency = __CURRENCY__
[paths]
TALER_DATA_HOME = /data
-[merchant-exchange-${CURRENCY}]
-currency = ${CURRENCY}
+[merchant-exchange-__CURRENCY__]
+currency = __CURRENCY__
exchange_base_url = http://exchange/
-master_key = ${EXCHANGE_PUB}
+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
+default_max_deposit_fee = __CURRENCY__:0.05
+default_max_wire_fee = __CURRENCY__:0.01
wire_transfer_delay = 0 s
port = 80
serve = tcp
@@ -22,3 +22,7 @@ serve = tcp
[merchant-account-merchant]
wire_file_mode = 770
wire_response = ${TALER_DATA_HOME}/merchant/wire/merchant.json
+
+[frontends]
+backend = http://localhost/
+backend_apikey = __BACKEND_APIKEY__
diff --git a/docker/hybrid/test-docker-mvp.sh b/docker/hybrid/test-docker-mvp.sh
new file mode 100755
index 0000000..74df183
--- /dev/null
+++ b/docker/hybrid/test-docker-mvp.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+taler-wallet-cli --no-throttle api --expect-success 'runIntegrationTest' \
+ '{"amountToSpend":"EUR:1",
+ "amountToWithdraw":"EUR:3",
+ "bankBaseUrl":"http://localhost:5000/demobanks/default/access-api/",
+ "exchangeBaseUrl":"http://localhost:5555/",
+ "merchantBaseUrl":"http://localhost:5556/"
+ }'
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.