taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

commit d274f454974c55f631248fc6b1c2d32d4123c435
parent 800a92e316f54751066aa978abfd41673acc4606
Author: Florian Dold <florian@dold.me>
Date:   Fri, 31 Mar 2023 11:54:38 +0200

sandcastle: move config

Diffstat:
Rsandcastle/images/exchange/taler.conf -> sandcastle/config/exchange/taler.conf | 0
Asandcastle/config/merchant/taler.conf | 24++++++++++++++++++++++++
Msandcastle/docker-compose.yml | 8++++----
Msandcastle/images/base/Dockerfile | 2+-
Msandcastle/images/exchange/Dockerfile | 1-
Msandcastle/images/exchange/startup.sh | 42+++++++++++++++++++++++-------------------
Msandcastle/images/merchant/Dockerfile | 1-
Msandcastle/images/merchant/startup.sh | 69++++++++++++++++-----------------------------------------------------
Dsandcastle/images/merchant/taler.conf | 35-----------------------------------
9 files changed, 68 insertions(+), 114 deletions(-)

diff --git a/sandcastle/images/exchange/taler.conf b/sandcastle/config/exchange/taler.conf diff --git a/sandcastle/config/merchant/taler.conf b/sandcastle/config/merchant/taler.conf @@ -0,0 +1,24 @@ +[taler] +currency = __CURRENCY__ + +[paths] +taler_data_home = /data + +[merchant-exchange-__CURRENCY__] +currency = __CURRENCY__ +exchange_base_url = __EXCHANGE_URL__ +master_key = __EXCHANGE_PUB__ + +[merchantdb-postgres] +config = postgres://root:__DB_PASSWORD__@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 + +[frontends] +backend = __BACKEND_URL__ +backend_apikey = __BACKEND_APIKEY__ diff --git a/sandcastle/docker-compose.yml b/sandcastle/docker-compose.yml @@ -13,7 +13,7 @@ services: volumes: - talerlogs:/logs - talerdata:/var/lib/postgresql/data/ - - ${TALER_DEPLOYMENT_CONFIG:-./config/deployment.conf}:/config/deployment.conf + - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro environment: # root is the only role existing in the DBMS. That # matches the role used by other containers when @@ -39,7 +39,7 @@ services: volumes: - talerlogs:/logs - talerdata:/data - - ${TALER_DEPLOYMENT_CONFIG:-./config/deployment.conf}:/config/deployment.conf + - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro restart: always merchant: @@ -56,7 +56,7 @@ services: - ${TALER_SYNC_PORT:-5563}:8084 # sync volumes: - talerlogs:/logs - - ${TALER_DEPLOYMENT_CONFIG:-./config/deployment.conf}:/config/deployment.conf + - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro restart: always bank: @@ -68,5 +68,5 @@ services: volumes: - talerlogs:/logs - talerdata:/data - - ${TALER_DEPLOYMENT_CONFIG:-./config/deployment.conf}:/config/deployment.conf + - ${TALER_SANDCASTLE_CONFIG:-./config}:/config:ro restart: always diff --git a/sandcastle/images/base/Dockerfile b/sandcastle/images/base/Dockerfile @@ -106,7 +106,7 @@ RUN ./bootstrap RUN ./configure RUN make install -RUN npm install -g pnpm +RUN npm install -g pnpm@^7.0.0 WORKDIR /wallet-core RUN ./bootstrap diff --git a/sandcastle/images/exchange/Dockerfile b/sandcastle/images/exchange/Dockerfile @@ -1,6 +1,5 @@ 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/sandcastle/images/exchange/startup.sh b/sandcastle/images/exchange/startup.sh @@ -6,6 +6,10 @@ set -eu export LD_LIBRARY_PATH=/usr/local/lib export GNUNET_FORCE_LOG=";;;;WARNING" +mkdir -p /etc/taler +TALERCONF=/etc/taler/taler.conf +cp /config/exchange/taler.conf $TALERCONF + # Values from config file mounted at run time: CURRENCY=`taler-config -c /config/deployment.conf -s taler-deployment -o currency` EXCHANGE_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o default-exchange` @@ -17,14 +21,14 @@ EXCHANGE_NEXUS_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deploy 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 -sed -i "s/__EXCHANGE_IBAN__/${EXCHANGE_IBAN}/" /config/taler.conf -sed -i "s/__TALER_FACADE_NAME__/${TALER_FACADE_NAME}/" /config/taler.conf -sed -i "s;__NEXUS_URL__;http://bank:15001;" /config/taler.conf +sed -i "s;__EXCHANGE_URL__;${EXCHANGE_URL};" $TALERCONF +sed -i "s;__DB_PASSWORD__;${DB_PASSWORD};" $TALERCONF +sed -i "s/__CURRENCY__/${CURRENCY}/" $TALERCONF +sed -i "s/__EXCHANGE_NEXUS_USERNAME__/${EXCHANGE_NEXUS_USERNAME}/" $TALERCONF +sed -i "s/__EXCHANGE_NEXUS_PASSWORD__/${EXCHANGE_NEXUS_PASSWORD}/" $TALERCONF +sed -i "s/__EXCHANGE_IBAN__/${EXCHANGE_IBAN}/" $TALERCONF +sed -i "s/__TALER_FACADE_NAME__/${TALER_FACADE_NAME}/" $TALERCONF +sed -i "s;__NEXUS_URL__;http://bank:15001;" $TALERCONF while ! pg_isready -h talerdb -d taler; do echo DB not ready yet. @@ -33,29 +37,29 @@ done echo Now DB is ready. echo -n "Init database... " -taler-exchange-dbinit -L WARNING -c /config/taler.conf +taler-exchange-dbinit -L WARNING -c $TALERCONF echo DONE echo -n "Starting EDDSA helper..." taler-exchange-secmod-eddsa -L WARNING \ - -c /config/taler.conf 2>&1 | \ + -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-secmod-eddsa-%Y-%m-%d.log 86400 & echo DONE echo -n "Starting RSA helper..." taler-exchange-secmod-rsa -L WARNING \ - -c /config/taler.conf 2>&1 | \ + -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-secmod-rsa-%Y-%m-%d.log 86400 & echo DONE echo -n "Starting CS helper..." taler-exchange-secmod-cs -L WARNING \ - -c /config/taler.conf 2>&1 | \ + -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-secmod-cs-%Y-%m-%d.log 86400 & echo DONE -EXCHANGE_MASTER_PUB=$(taler-exchange-offline -c /config/taler.conf setup) +EXCHANGE_MASTER_PUB=$(taler-exchange-offline -c $TALERCONF setup) -sed -i "s/__EXCHANGE_MASTER_PUB__/$EXCHANGE_MASTER_PUB/" /config/taler.conf +sed -i "s/__EXCHANGE_MASTER_PUB__/$EXCHANGE_MASTER_PUB/" $TALERCONF echo -n "Launching exchange HTTPD..." -taler-exchange-httpd -L WARNING -c /config/taler.conf 2>&1 | \ +taler-exchange-httpd -L WARNING -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-httpd-%Y-%m-%d.log 86400 & for n in `seq 1 50` do @@ -73,20 +77,20 @@ for n in `seq 1 50` echo DONE echo -n "Launching wirewatch..." -taler-exchange-wirewatch -L WARNING --longpoll-timeout=2s -c /config/taler.conf 2>&1 | \ +taler-exchange-wirewatch -L WARNING --longpoll-timeout=2s -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-wirewatch-%Y-%m-%d.log 86400 & echo DONE echo -n "Launching transfer service..." -taler-exchange-transfer -L WARNING -c /config/taler.conf 2>&1 | \ +taler-exchange-transfer -L WARNING -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-transfer-%Y-%m-%d.log 86400 & echo DONE echo -n "Launching aggregator service..." -taler-exchange-aggregator -L WARNING -c /config/taler.conf 2>&1 | \ +taler-exchange-aggregator -L WARNING -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-exchange-aggregator-%Y-%m-%d.log 86400 & echo DONE echo echo -n "Setup keys and fees with taler-exchange-offline..." -taler-exchange-offline -L WARNING -c /config/taler.conf \ +taler-exchange-offline -L WARNING -c $TALERCONF \ download sign \ enable-account "payto://iban/SANDBOXX/${EXCHANGE_IBAN}?receiver-name=Exchange+Company" \ wire-fee now iban ${CURRENCY}:0.01 ${CURRENCY}:0.01 \ diff --git a/sandcastle/images/merchant/Dockerfile b/sandcastle/images/merchant/Dockerfile @@ -1,6 +1,5 @@ FROM taler_local/taler_base -COPY taler.conf /config/taler.conf COPY startup.sh / COPY create_instances.sh / COPY update_instances_auth.sh / diff --git a/sandcastle/images/merchant/startup.sh b/sandcastle/images/merchant/startup.sh @@ -6,6 +6,10 @@ set -eu export LD_LIBRARY_PATH=/usr/local/lib export GNUNET_FORCE_LOG=";;;;WARNING" +mkdir -p /etc/taler +TALERCONF=/etc/taler/taler.conf +cp /config/merchant/taler.conf $TALERCONF + # Values from config file mounted at run time: CURRENCY=`taler-config -c /config/deployment.conf -s taler-deployment -o currency` BACKEND_APIKEY=`taler-config -c /config/deployment.conf -s taler-deployment -o merchant-apikey` @@ -80,18 +84,18 @@ is_serving ${EXCHANGE_URL} EXCHANGE_MASTER_PUB=$(curl -s ${EXCHANGE_URL}keys | jq -r .master_public_key) echo Found Exchange Pub: $EXCHANGE_MASTER_PUB -sed -i "s;__EXCHANGE_URL__;${EXCHANGE_URL};" /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 -sed -i "s;__BACKEND_URL__;${BACKEND_URL};" /config/taler.conf -sed -i "s;__DB_PASSWORD__;${DB_PASSWORD};" /config/taler.conf +sed -i "s;__EXCHANGE_URL__;${EXCHANGE_URL};" $TALERCONF +sed -i "s/__EXCHANGE_PUB__/${EXCHANGE_MASTER_PUB}/" $TALERCONF +sed -i "s/__CURRENCY__/${CURRENCY}/" $TALERCONF +sed -i "s/__BACKEND_APIKEY__/${BACKEND_APIKEY}/" $TALERCONF +sed -i "s;__BACKEND_URL__;${BACKEND_URL};" $TALERCONF +sed -i "s;__DB_PASSWORD__;${DB_PASSWORD};" $TALERCONF echo "Init database... " -taler-merchant-dbinit -L WARNING -c /config/taler.conf +taler-merchant-dbinit -L WARNING -c $TALERCONF echo DONE echo -n "Launch merchant backend..." -taler-merchant-httpd -L WARNING -a $BACKEND_APIKEY -c /config/taler.conf 2>&1 | \ +taler-merchant-httpd -L WARNING -a $BACKEND_APIKEY -c $TALERCONF 2>&1 | \ rotatelogs -e /logs/taler-merchant-httpd-%Y-%m-%d.log 86400 & echo DONE sleep 1 @@ -127,57 +131,16 @@ export TALER_ENV_URL_INTRO=`taler-config -c /config/deployment.conf -s taler-dep export TALER_ENV_URL_BANK=`taler-config -c /config/deployment.conf -s taler-deployment -o bank-url` echo -n "Launch blog..." -taler-merchant-demos -c /config/taler.conf --http-port 8080 blog 2>&1 | rotatelogs -e /logs/blog-%Y-%m-%d.log 86400 & +taler-merchant-demos -c $TALERCONF --http-port 8080 blog 2>&1 | rotatelogs -e /logs/blog-%Y-%m-%d.log 86400 & echo DONE echo -n "Launch donations..." -taler-merchant-demos -c /config/taler.conf --http-port 8081 donations 2>&1 | rotatelogs -e /logs/donations-%Y-%m-%d.log 86400 & +taler-merchant-demos -c $TALERCONF --http-port 8081 donations 2>&1 | rotatelogs -e /logs/donations-%Y-%m-%d.log 86400 & echo DONE echo -n "Launch Survey..." -taler-merchant-demos -c /config/taler.conf --http-port 8082 survey 2>&1 | rotatelogs -e /logs/survey-%Y-%m-%d.log 86400 & +taler-merchant-demos -c $TALERCONF --http-port 8082 survey 2>&1 | rotatelogs -e /logs/survey-%Y-%m-%d.log 86400 & echo DONE echo -n "Launch Landing..." -taler-merchant-demos -c /config/taler.conf --http-port 8083 landing 2>&1 | rotatelogs -e /logs/landing-%Y-%m-%d.log 86400 & +taler-merchant-demos -c $TALERCONF --http-port 8083 landing 2>&1 | rotatelogs -e /logs/landing-%Y-%m-%d.log 86400 & echo DONE -# Skip tipping for now until https://bugs.taler.net/n/7575 is resolved. -##echo -n Creating a reserve for tips... -##PAYTO_RESERVE=$( -## taler-merchant-setup-reserve \ -## --amount ${CURRENCY}:20 \ -## --exchange-url ${EXCHANGE_URL} \ -## --merchant-url http://localhost/instances/survey/ \ -## --apikey "Bearer ${BACKEND_APIKEY}" \ -## --wire-method iban -##) -## -##SANDBOX_URL="http://bank:15000" -##is_serving "${SANDBOX_URL}/demobanks/default/integration-api/config" -##SURVEY_USERNAME=`taler-config -c /config/deployment.conf -s taler-deployment -o survey-sandbox-username` -##SURVEY_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o survey-sandbox-password` -### Check/wait that the Survey site got its bank account. -##curl "${SANDBOX_URL}/demobanks/default/access-api/public-accounts" -##is_serving "${SANDBOX_URL}/demobanks/default/access-api/accounts/${SURVEY_USERNAME}" \ -## "Authorization: Basic $(echo -n $SURVEY_USERNAME:$SURVEY_PASSWORD | base64)" -##export LIBEUFIN_SANDBOX_USERNAME=${SURVEY_USERNAME} -##export LIBEUFIN_SANDBOX_PASSWORD=${SURVEY_PASSWORD} -##libeufin-cli sandbox \ -## --sandbox-url ${SANDBOX_URL} \ -## demobank new-transaction --bank-account ${LIBEUFIN_SANDBOX_USERNAME} \ -## --payto-with-subject ${PAYTO_RESERVE} --amount 20 -##unset LIBEUFIN_SANDBOX_USERNAME -##unset LIBEUFIN_SANDBOX_PASSWORD -##echo DONE - -# Sync should be put into a separate container: https://bugs.gnunet.org/view.php?id=7605 -#echo -n "Init sync database..." -#sync-dbinit -L WARNING -c /config/taler.conf -#echo DONE -# -#echo -n "Launching sync..." -#sync-httpd -L WARNING -c /config/taler.conf 2>&1 | \ -# rotatelogs -e /logs/sync-httpd-%Y-%m-%d.log 86400 & -#echo DONE -# -#is_serving $SYNC_URL - wait -n diff --git a/sandcastle/images/merchant/taler.conf b/sandcastle/images/merchant/taler.conf @@ -1,35 +0,0 @@ -[taler] -currency = __CURRENCY__ - -[paths] -taler_data_home = /data - -[merchant-exchange-__CURRENCY__] -currency = __CURRENCY__ -exchange_base_url = __EXCHANGE_URL__ -master_key = __EXCHANGE_PUB__ - -[merchantdb-postgres] -config = postgres://root:__DB_PASSWORD__@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 - -[frontends] -backend = __BACKEND_URL__ -backend_apikey = __BACKEND_APIKEY__ - -[sync] -serve = tcp -port = 8084 -apikey = __BACKEND_APIKEY__ -annual_fee = __CURRENCY__:0.01 -fulfillment_url = __SYNC_FULFILLMENT_URL__ -payment_backend_url = __BACKEND_URL__ - -[syncdb-postgres] -config = postgres://root:__DB_PASSWORD__@talerdb/taler