aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/hybrid/README2
-rw-r--r--docker/hybrid/config/deployment.conf1
-rw-r--r--docker/hybrid/docker-compose.yml8
-rw-r--r--docker/hybrid/images/base/Dockerfile2
-rw-r--r--docker/hybrid/images/exchange/startup.sh37
-rw-r--r--docker/hybrid/images/exchange/taler.conf2
-rw-r--r--docker/hybrid/images/libeufin/startup.sh14
-rw-r--r--docker/hybrid/images/merchant/startup.sh9
-rw-r--r--docker/hybrid/images/postgres/Dockerfile4
-rw-r--r--docker/hybrid/images/postgres/init.sql2
10 files changed, 52 insertions, 29 deletions
diff --git a/docker/hybrid/README b/docker/hybrid/README
index dd97e86..4326c33 100644
--- a/docker/hybrid/README
+++ b/docker/hybrid/README
@@ -44,7 +44,7 @@ absolute path of a host-specific configuration file. See
config/deployment.conf for an example.
From this folder, run:
- $ docker-compose up --remove-orphans
+ $ docker-compose up --remove-orphans --abort-on-container-exit
How to test on localhost
========================
diff --git a/docker/hybrid/config/deployment.conf b/docker/hybrid/config/deployment.conf
index 427ffb5..b506ecb 100644
--- a/docker/hybrid/config/deployment.conf
+++ b/docker/hybrid/config/deployment.conf
@@ -5,3 +5,4 @@ exchange-nexus-username = exchange-at-nexus
exchange-nexus-password = secret-at-nexus
exchange-sandbox-username = exchange-at-sandbox
exchange-sandbox-password = secret-at-sandbox
+db-password = db-secret
diff --git a/docker/hybrid/docker-compose.yml b/docker/hybrid/docker-compose.yml
index df17b16..32c8c56 100644
--- a/docker/hybrid/docker-compose.yml
+++ b/docker/hybrid/docker-compose.yml
@@ -8,6 +8,11 @@ services:
- 8888:5432
volumes:
- ${TALER_DEPLOYMENT_DATA:-~/taler-data}/postgresql:/var/lib/postgresql/data
+ - ${TALER_DEPLOYMENT_CONFIG:?Please export TALER_DEPLOYMENT_CONFIG}:/config/deployment.conf
+ environment:
+ POSTGRES_USER: root
+ POSTGRES_PASSWORD: nonce
+ POSTGRES_HOST_AUTH_METHOD: scram-sha-256
exchange:
build: ./images/exchange
@@ -18,6 +23,7 @@ services:
volumes:
- ${TALER_DEPLOYMENT_CONFIG:?Please export TALER_DEPLOYMENT_CONFIG}:/config/deployment.conf
- ${TALER_DEPLOYMENT_DATA:-~/taler-data}/exchange:/data
+ - ${TALER_DEPLOYMENT_LOGS:-~/taler-logs}:/logs
merchant:
build: ./images/merchant
@@ -28,6 +34,7 @@ services:
- 5559:8080 # Blog TBD.
volumes:
- ${TALER_DEPLOYMENT_CONFIG:?Please export TALER_DEPLOYMENT_CONFIG}:/config/deployment.conf
+ - ${TALER_DEPLOYMENT_LOGS:-~/taler-logs}:/logs
bank:
build: ./images/libeufin
@@ -37,3 +44,4 @@ services:
volumes:
- ${TALER_DEPLOYMENT_CONFIG:?Please export TALER_DEPLOYMENT_CONFIG}:/config/deployment.conf
- ${TALER_DEPLOYMENT_DATA:-~/taler-data}/libeufin:/data
+ - ${TALER_DEPLOYMENT_LOGS:-~/taler-logs}:/logs
diff --git a/docker/hybrid/images/base/Dockerfile b/docker/hybrid/images/base/Dockerfile
index 7f6e3f9..227ad44 100644
--- a/docker/hybrid/images/base/Dockerfile
+++ b/docker/hybrid/images/base/Dockerfile
@@ -7,7 +7,7 @@ RUN apt-get install -y autoconf autopoint libtool texinfo \
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 \
- socat python3-sphinx-rtd-theme
+ socat python3-sphinx-rtd-theme apache2-utils
RUN pip3 install requests click poetry uwsgi
diff --git a/docker/hybrid/images/exchange/startup.sh b/docker/hybrid/images/exchange/startup.sh
index a586c7c..bc4153d 100644
--- a/docker/hybrid/images/exchange/startup.sh
+++ b/docker/hybrid/images/exchange/startup.sh
@@ -11,8 +11,9 @@ EXCHANGE_NEXUS_USERNAME=`taler-config -c /config/deployment.conf -s taler-deploy
EXCHANGE_NEXUS_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o exchange-nexus-password`
EXCHANGE_IBAN=DE159593
TALER_FACADE_NAME=taler-facade
-
+DB_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o db-password`
sed -i "s;__EXCHANGE_URL__;${EXCHANGE_URL};" /config/taler.conf
+sed -i "s;__DB_PASSWORD__;${DB_PASSWORD};" /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
@@ -29,35 +30,47 @@ echo Now DB is ready.
# Make sure we have the right to connect
echo "" | psql -h talerdb -d taler
-taler-exchange-dbinit -c /config/taler.conf --reset
+taler-exchange-dbinit -L DEBUG -c /config/taler.conf --reset
+
+taler-exchange-secmod-eddsa -L DEBUG \
+ -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-exchange-secmod-eddsa-%Y-%m-%d 86400 &
+
+taler-exchange-secmod-rsa -L DEBUG \
+ -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-exchange-secmod-rsa-%Y-%m-%d 86400 &
+
+taler-exchange-secmod-cs -L DEBUG \
+ -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-exchange-secmod-cs-%Y-%m-%d 86400 &
-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`
+taler-exchange-httpd -L DEBUG -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-exchange-httpd-%Y-%m-%d 86400 &
+for n in `seq 1 20`
do
echo "."
- sleep 0.1
+ sleep 0.4
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"
+ echo "ERROR: failed to launch Exchange"
+ exit 1
fi
echo Echange launched.
-taler-exchange-wirewatch -L DEBUG -c /config/taler.conf &
+taler-exchange-wirewatch -L DEBUG -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-exchange-wirewatch-%Y-%m-%d 86400 &
-taler-exchange-offline -c /config/taler.conf \
+taler-exchange-offline -L DEBUG -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
+ upload 2>&1
wait
diff --git a/docker/hybrid/images/exchange/taler.conf b/docker/hybrid/images/exchange/taler.conf
index 43a01d6..e905898 100644
--- a/docker/hybrid/images/exchange/taler.conf
+++ b/docker/hybrid/images/exchange/taler.conf
@@ -37,7 +37,7 @@ port = 80
# serve = unix
[exchangedb-postgres]
-config = postgres://talerdb/taler
+config = postgres://root:__DB_PASSWORD__@talerdb/taler
[coin___CURRENCY___1]
rsa_keysize = 2048
diff --git a/docker/hybrid/images/libeufin/startup.sh b/docker/hybrid/images/libeufin/startup.sh
index 5e8b447..ea72201 100644
--- a/docker/hybrid/images/libeufin/startup.sh
+++ b/docker/hybrid/images/libeufin/startup.sh
@@ -52,7 +52,8 @@ libeufin-sandbox default-exchange \
"payto://iban/SANDBOXX/${EXCHANGE_IBAN}?receiver-name=Exchange+Company"
echo DONE
echo -n "Launching Sandbox..."
-libeufin-sandbox serve --no-localhost-only --port $SANDBOX_PORT &
+libeufin-sandbox serve --no-localhost-only --port $SANDBOX_PORT 2>&1 | \
+ rotatelogs -e /logs/libeufin-sandbox-serve-%Y-%m-%d 86400 &
echo DONE
is_serving ${LIBEUFIN_SANDBOX_URL} Sandbox
@@ -65,10 +66,9 @@ echo -n "Create exchange EBICS subscriber at Sandbox.."
export LIBEUFIN_SANDBOX_USERNAME=admin
export LIBEUFIN_SANDBOX_PASSWORD=secret
echo -n "Create EBICS host at Sandbox.."
-libeufin-cli sandbox \
- --sandbox-url $SANDBOX_BASE_URL \
- ebicshost create --host-id talerebics
+libeufin-cli sandbox --sandbox-url $SANDBOX_BASE_URL ebicshost create --host-id talerebics
echo DONE
+echo -n "Create exchange's EBICS subscriber at Sandbox.."
libeufin-cli sandbox \
demobank new-ebicssubscriber --host-id talerebics \
--user-id exchangeebics --partner-id talerpartner \
@@ -79,10 +79,12 @@ EXCHANGE_NEXUS_USERNAME=`taler-config -c /config/deployment.conf -s taler-deploy
EXCHANGE_NEXUS_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o exchange-nexus-password`
export LIBEUFIN_NEXUS_DB_CONNECTION="jdbc:sqlite:/data/nexus.sqlite3"
echo -n "Creating Nexus superuser..."
-libeufin-nexus superuser $EXCHANGE_NEXUS_USERNAME --password $EXCHANGE_NEXUS_PASSWORD
+libeufin-nexus superuser $EXCHANGE_NEXUS_USERNAME \
+ --password $EXCHANGE_NEXUS_PASSWORD
echo DONE
echo -n "Launching Nexus..."
-libeufin-nexus serve --no-localhost-only --port $NEXUS_PORT &
+libeufin-nexus serve --no-localhost-only --port $NEXUS_PORT | \
+ rotatelogs -e /logs/libeufin-nexus-serve-%Y-%m-%d 86400 &
echo DONE
is_serving $LIBEUFIN_NEXUS_URL Nexus
diff --git a/docker/hybrid/images/merchant/startup.sh b/docker/hybrid/images/merchant/startup.sh
index 0014a21..6a64d33 100644
--- a/docker/hybrid/images/merchant/startup.sh
+++ b/docker/hybrid/images/merchant/startup.sh
@@ -23,7 +23,7 @@ echo Now DB is ready.
socat TCP-LISTEN:5555,fork,reuseaddr TCP:exchange:80 &
echo Checking exchange at: ${EXCHANGE_URL}
-for n in `seq 1 30`
+for n in `seq 1 20`
do
echo "."
sleep 0.4
@@ -33,7 +33,7 @@ for n in `seq 1 30`
done
if [ 1 != $OK ]
then
- echo "Exchange unreachable."
+ echo "ERROR: exchange unreachable."
exit 1
fi
echo Echange reachable.
@@ -45,10 +45,11 @@ 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
+taler-merchant-dbinit -L DEBUG -c /config/taler.conf --reset 2>&1
echo DONE
echo -n "Launch merchant backend..."
-taler-merchant-httpd -c /config/taler.conf &
+taler-merchant-httpd -c /config/taler.conf 2>&1 | \
+ rotatelogs -e /logs/taler-merchant-httpd-%Y-%m-%d 86400 &
echo DONE
sleep 1
echo -n "Create default instance..."
diff --git a/docker/hybrid/images/postgres/Dockerfile b/docker/hybrid/images/postgres/Dockerfile
index 6c46150..9b99dc1 100644
--- a/docker/hybrid/images/postgres/Dockerfile
+++ b/docker/hybrid/images/postgres/Dockerfile
@@ -1,4 +1,4 @@
FROM docker.io/postgres
-ENV POSTGRES_HOST_AUTH_METHOD=trust
-COPY init.sql /docker-entrypoint-initdb.d/init.sql
+COPY init.sh /docker-entrypoint-initdb.d/init.sh
+RUN chmod +x /docker-entrypoint-initdb.d/init.sh
diff --git a/docker/hybrid/images/postgres/init.sql b/docker/hybrid/images/postgres/init.sql
deleted file mode 100644
index dec35df..0000000
--- a/docker/hybrid/images/postgres/init.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE ROLE root SUPERUSER LOGIN;
-CREATE DATABASE taler WITH OWNER root;