bank: landing-stats + install helpers; health/start
This commit is contained in:
parent
ef40149ed2
commit
b903fb525b
2 changed files with 645 additions and 0 deletions
78
scripts/taler-bank/landing-stats-install.sh
Normal file
78
scripts/taler-bank/landing-stats-install.sh
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#!/bin/bash
|
||||
# Install + run landing-stats.sh *inside* the bank container, and optionally
|
||||
# install a cron entry there. Documented in configs/bank-landing/README.md.
|
||||
#
|
||||
# Run on koopa host (root or user in podman group):
|
||||
# ./landing-stats-install.sh # copy + one-shot run
|
||||
# ./landing-stats-install.sh --cron # also install *minutely* cron inside container
|
||||
# ./landing-stats-install.sh --run-only # only exec existing script
|
||||
set -euo pipefail
|
||||
|
||||
DO_CRON=0
|
||||
RUN_ONLY=0
|
||||
# cron schedule (default: every minute)
|
||||
: "${LANDING_STATS_CRON:=* * * * *}"
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--cron) DO_CRON=1 ;;
|
||||
--run-only) RUN_ONLY=1 ;;
|
||||
-h|--help)
|
||||
sed -n '2,12p' "$0" | sed 's/^# \?//'
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
ROOT=$(cd "$(dirname "$0")" && pwd)
|
||||
SRC="$ROOT/landing-stats.sh"
|
||||
[ -f "$SRC" ] || { echo "missing $SRC" >&2; exit 1; }
|
||||
|
||||
# Prefer the known names from ops docs
|
||||
C=""
|
||||
for name in taler-hacktivism-bank taler-bank-hacktivism; do
|
||||
if podman ps --format '{{.Names}}' 2>/dev/null | grep -qx "$name"; then
|
||||
C=$name
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "$C" ]; then
|
||||
C=$(podman ps --format '{{.Names}}' 2>/dev/null | grep -i bank | head -1 || true)
|
||||
fi
|
||||
[ -n "$C" ] || { echo "no bank container running" >&2; exit 1; }
|
||||
echo "container=$C"
|
||||
|
||||
# Host password → container /root (if not already there)
|
||||
if [ -f /root/bank-explorer-password.txt ]; then
|
||||
podman cp /root/bank-explorer-password.txt "$C:/root/bank-explorer-password.txt" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
if [ "$RUN_ONLY" != "1" ]; then
|
||||
podman exec "$C" mkdir -p /usr/local/bin /var/www/bank-landing
|
||||
podman cp "$SRC" "$C:/usr/local/bin/landing-stats.sh"
|
||||
podman exec "$C" chmod 755 /usr/local/bin/landing-stats.sh
|
||||
echo "installed /usr/local/bin/landing-stats.sh"
|
||||
fi
|
||||
|
||||
# Ensure landing dir exists for nginx intro
|
||||
podman exec "$C" mkdir -p /var/www/bank-landing
|
||||
|
||||
echo "running landing-stats.sh inside $C …"
|
||||
podman exec \
|
||||
-e LANDING_DIR=/var/www/bank-landing \
|
||||
-e BANK_USER=explorer \
|
||||
"$C" /usr/local/bin/landing-stats.sh
|
||||
|
||||
if [ "$DO_CRON" = "1" ]; then
|
||||
# default: every minute (* * * * *); override with LANDING_STATS_CRON='*/5 * * * *'
|
||||
podman exec -e LANDING_STATS_CRON="$LANDING_STATS_CRON" "$C" bash -c '
|
||||
sched="${LANDING_STATS_CRON:-* * * * *}"
|
||||
line="$sched TZ=Europe/Zurich LANDING_DIR=/var/www/bank-landing /usr/local/bin/landing-stats.sh >>/var/log/landing-stats.log 2>&1"
|
||||
(crontab -l 2>/dev/null | grep -v landing-stats.sh; echo "$line") | crontab -
|
||||
echo "cron installed:"; crontab -l | grep landing-stats
|
||||
'
|
||||
fi
|
||||
|
||||
echo "public check: curl -sS https://bank.hacktivism.ch/intro/stats.json | head"
|
||||
# If host maps 9013 → container landing, show local file
|
||||
podman exec "$C" head -c 400 /var/www/bank-landing/stats.json 2>/dev/null || true
|
||||
echo
|
||||
Loading…
Add table
Add a link
Reference in a new issue