summaryrefslogtreecommitdiff
path: root/sandcastle/images/exchange/scripts/startup.sh
blob: 5d8c0f830a4df720d7620918b015d5d020708a2f (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
#!/bin/bash

source /scripts/config.sh

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

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

echo -n "Init database... "
taler-exchange-dbinit -L WARNING -c $TALERCONF
echo DONE

echo -n "Starting EDDSA helper..."
taler-exchange-secmod-eddsa -L WARNING \
  -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 $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 $TALERCONF 2>&1 | \
    rotatelogs -e /logs/taler-exchange-secmod-cs-%Y-%m-%d.log 86400 &
echo DONE

echo -n "Launching exchange HTTPD..."
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
    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 --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 $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 $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 $TALERCONF \
  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

# Spawn a process that will fail after an hour,
# to facilitate restarting every hour.
( sleep 3600 && exit 1) &

# Exit once a single process fails.
# Then, docker-compose will restart the whole container.
wait -n