summaryrefslogtreecommitdiff
path: root/sandcastle/images/libeufin/startup.sh
blob: 223852310e240cdea009787549c5b586bcfc8be8 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash

set -o pipefail
set -eu

export JAVA_OPTS="-Xss4m -XX:MaxJavaStackTraceDepth=1073741823"

# helps taler-config
export LD_LIBRARY_PATH=/usr/local/lib

mkdir -p /etc/taler/
TALERCONF=/etc/taler/taler.conf
cp /config/libeufin-bank/taler.conf $TALERCONF

CURRENCY=$(taler-config -c /config/deployment.conf -s taler-deployment -o currency)
EXCHANGE_IBAN=DE159593
DB_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o db-password`

sed -i "s;__DB_PASSWORD__;${DB_PASSWORD};" $TALERCONF
sed -i "s/__CURRENCY__/${CURRENCY}/" $TALERCONF

# takes port and service name
is_serving() {
  echo Is $1 serving?
  for n in `seq 1 80`
    do
      echo "."
      sleep 0.1
      OK=1
      wget $1 -o /dev/null -O /dev/null >/dev/null && break
      OK=0
    done
    if [ 1 != $OK ]
    then
        echo "$2 unreachable."
        exit 1
    fi
  echo $2 reachable.
}

BANK_SIGNUP_BONUS=$(taler-config -c /config/deployment.conf -s taler-deployment -o bank-signup-bonus)
BANK_ALLOW_REGISTRATIONS=$(taler-config -c /config/deployment.conf -s taler-deployment -o bank-allow-registrations)

case "${1:-}" in
  shell)
    echo "Starting interactive shell"
    exec bash
    ;;
  *)
    ;;
esac

echo "running libeufin-bank dbinit"
libeufin-bank dbinit

echo "running libeufin-bank serve in background"
libeufin-bank serve &

is_serving http://localhost:15000/config libeufin-bank

EXCHANGE_IBAN=DE159593
BLOG_IBAN=DE940993
GNUNET_IBAN=DE463312
DEFAULT_IBAN=DE474361
TOR_IBAN=DE358263
TALER_IBAN=DE102893
SURVEY_IBAN=DE731371

EXCHANGE_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o exchange-bank-password`
POS_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o pos-bank-password`
BLOG_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o blog-bank-password`
GNUNET_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o gnunet-bank-password`
DEFAULT_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o default-bank-password`
TOR_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o tor-bank-password`
TALER_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o taler-bank-password`
SURVEY_SANDBOX_PASSWORD=`taler-config -c /config/deployment.conf -s taler-deployment -o survey-bank-password`

req=$(jq -n '
    {
      username: "exchange",
      password: $PW,
      name: "exchange",
      is_public: true,
      is_taler_exchange: true,
      internal_payto_uri: $PAYTO,
    }' \
    --arg PW $EXCHANGE_SANDBOX_PASSWORD \
    --arg PAYTO "payto://iban/$EXCHANGE_IBAN"
  )
echo $req
curl -v -X POST -H "Content-Type: application/json" --data "$req" http://localhost:15000/accounts


# starting the SPA
BLOG_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o blog-url`
DONATIONS_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o donations-url`
SURVEY_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o survey-url`
LANDING_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o landing-url`
BANK_WEBUI_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o bank-url`
BANK_BACKEND_URL=`taler-config -c /config/deployment.conf -s taler-deployment -o bank-backend-url`

sed -i "s;__LANDING_URL__;${LANDING_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
sed -i "s;__BLOG_URL__;${BLOG_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
sed -i "s;__DONATIONS_URL__;${DONATIONS_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
sed -i "s;__SURVEY_URL__;${SURVEY_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
sed -i "s;__BANK_WEBUI_URL__;${BANK_WEBUI_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
sed -i "s;__BANK_BACKEND_URL__;${BANK_BACKEND_URL};" /usr/local/share/taler/demobank-ui/demobank-ui-settings.js
# Serves BANK_WEBUI_URL
nginx -c /nginx.conf 2>&1 | rotatelogs -e /logs/bank-ui-%Y-%m-%d.log 86400 &

echo "Launched bank services"

# -n makes 'wait' return as soon as one of the background
# processes exits.  That triggers then the 'restart: always'
# policy set in the compose file.
wait -n