Reflect host naming in git paths: - configs/taler-hacktivism/ (was taler-merchant) → container taler-hacktivism - configs/taler-hacktivism-bank/ (was taler-bank) → container …-bank, image taler-hacktivism-banking:live - configs/taler-exchange-ansible/ already matches …-exchange-ansible - configs/taler-exchange/ = conf inside that exchange container Update LIVE.md, README, ports/refs. No secret values.
62 lines
2.2 KiB
Bash
Executable file
62 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Offline: download future keys from local exchange, sign, upload. Restore public BASE_URL.
|
|
# Run as root inside taler-hacktivism-exchange-ansible.
|
|
set -euo pipefail
|
|
CONF=/etc/taler-exchange/taler-exchange.conf
|
|
OV=/etc/taler-exchange/exchange-overrides.conf
|
|
PUBLIC='https://exchange.hacktivism.ch/'
|
|
LOCAL='http://127.0.0.1:9011/'
|
|
|
|
[ "$(id -u)" -eq 0 ] || { echo "root only"; exit 1; }
|
|
|
|
sed -i "s|^BASE_URL = .*|BASE_URL = ${LOCAL}|" "$OV"
|
|
echo "BASE_URL=$(grep '^BASE_URL' "$OV")"
|
|
|
|
echo "=== download ==="
|
|
if ! runuser -u taler-exchange-offline -- \
|
|
taler-exchange-offline -c "$CONF" -L INFO download > /tmp/future-keys.json 2>/tmp/dl.err; then
|
|
echo "download failed:"; cat /tmp/dl.err
|
|
# still show size
|
|
fi
|
|
echo "dl_err:"; cat /tmp/dl.err | tail -30
|
|
echo "dl_size=$(wc -c </tmp/future-keys.json 2>/dev/null || echo 0)"
|
|
head -c 400 /tmp/future-keys.json 2>/dev/null; echo
|
|
|
|
if [ ! -s /tmp/future-keys.json ]; then
|
|
echo "empty download — check secmod connectivity / management API"
|
|
sed -i "s|^BASE_URL = .*|BASE_URL = ${PUBLIC}|" "$OV"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== sign ==="
|
|
runuser -u taler-exchange-offline -- \
|
|
taler-exchange-offline -c "$CONF" -L INFO sign < /tmp/future-keys.json > /tmp/signed-keys.json 2>/tmp/sg.err
|
|
echo "sg_err:"; cat /tmp/sg.err | tail -20
|
|
echo "sg_size=$(wc -c </tmp/signed-keys.json)"
|
|
|
|
echo "=== upload ==="
|
|
runuser -u taler-exchange-offline -- \
|
|
taler-exchange-offline -c "$CONF" -L INFO upload < /tmp/signed-keys.json 2>/tmp/up.err
|
|
echo "up_err:"; cat /tmp/up.err | tail -20
|
|
|
|
sed -i "s|^BASE_URL = .*|BASE_URL = ${PUBLIC}|" "$OV"
|
|
echo "BASE_URL restored=$(grep '^BASE_URL' "$OV")"
|
|
|
|
echo "=== /keys probe ==="
|
|
sleep 1
|
|
# wake suspended handlers with a tiny delay
|
|
for i in 1 2 3 4 5 6; do
|
|
code=$(curl -sS -m 12 -o /tmp/keys.json -w '%{http_code}' http://127.0.0.1:9011/keys || true)
|
|
sz=$(wc -c </tmp/keys.json 2>/dev/null || echo 0)
|
|
echo "try $i code=$code size=$sz"
|
|
if [ "$code" = "200" ] && [ "$sz" -gt 200 ]; then
|
|
echo KEYS_OK
|
|
head -c 300 /tmp/keys.json; echo
|
|
grep -oE '"master_public_key"[[:space:]]*:[[:space:]]*"[^"]+"' /tmp/keys.json | head -1 || true
|
|
exit 0
|
|
fi
|
|
sleep 2
|
|
done
|
|
echo KEYS_FAIL
|
|
tail -25 /var/log/taler-exchange/taler-exchange-httpd-*.log 2>/dev/null | tail -25
|
|
exit 1
|