summaryrefslogtreecommitdiff
path: root/docker/demo/images/exchange/startup.sh
blob: ebe4ab688656acb0e3b3b01c9ad87d8212c7557c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/bash

set -o pipefail
set -eu

export LD_LIBRARY_PATH=/usr/local/lib

# 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`

socat TCP-LISTEN:5555,fork,reuseaddr TCP:localhost:80 &

EXCHANGE_NEXUS_USERNAME=`taler-config -c /config/deployment.conf -s taler-deployment -o exchange-nexus-username`
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
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

while ! pg_isready -h talerdb -d taler; do
  echo DB not ready yet.
  sleep 2
done
echo Now DB is ready.

echo -n "Init database... "
taler-exchange-dbinit -L WARNING -c /config/taler.conf
echo DONE

echo -n "Starting EDDSA helper..."
taler-exchange-secmod-eddsa -L WARNING \
  -c /config/taler.conf 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 | \
    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 | \
    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)

sed -i "s/__EXCHANGE_MASTER_PUB__/$EXCHANGE_MASTER_PUB/" /config/taler.conf
echo -n "Launching exchange HTTPD..."
taler-exchange-httpd -L WARNING -c /config/taler.conf 2>&1 | \
  rotatelogs -e /logs/taler-exchange-httpd-%Y-%m-%d.log 86400 &
for n in `seq 1 50`
  do
    echo "."
    sleep 0.3
    OK=1
    wget $EXCHANGE_URL -t 1 -o /dev/null -O /dev/null >/dev/null && break
    OK=0
  done
  if [ 1 != $OK ]
  then
      echo "ERROR: failed to launch Exchange"
      exit 1
  fi
echo DONE

echo -n "Launching wirewatch..."
taler-exchange-wirewatch -L WARNING -c /config/taler.conf 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 | \
  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 | \
  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 \
  download sign \
  enable-account "payto://iban/SANDBOXX/${EXCHANGE_IBAN}?receiver-name=Exchange+Company" \
  wire-fee now iban ${CURRENCY}:0.01 ${CURRENCY}:0.01 \
  global-fee now ${CURRENCY}:0 ${CURRENCY}:0 ${CURRENCY}:0 1h 1year 5 \
  upload 2>&1
echo DONE

echo -n "Requesting exchange's /keys..."
curl --max-time 4 -s "${EXCHANGE_URL}keys"
echo DONE

wait -n