koopa-admin-log/scripts/taler-bank
Hernâni Marques 196ba7aba9 bank: strip :443 from taler://withdraw URIs for wallet apps.
libeufin includes default HTTPS port; demo/auto-account APIs, refresh
scripts, and landing JS now normalize hosts without :443. ensure-taler-apps
also starts merchant ui-unlock after reboot.
2026-07-17 01:07:22 +02:00
..
maintenance Add bank maintenance script to raise all account debit limits. 2026-07-16 21:17:43 +02:00
auto-confirm-withdrawals.sh bank: default auto-confirm poll interval to 2 seconds. 2026-07-16 20:49:53 +02:00
check_bank-health.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00
credit-account.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00
demo-withdraw-api.py bank: strip :443 from taler://withdraw URIs for wallet apps. 2026-07-17 01:07:22 +02:00
goa-withdraw-ladder.sh bank: standalone GOA withdraw ladder helper script. 2026-07-16 23:10:02 +02:00
install-demo-withdraw-api.sh bank: default auto-confirm poll interval to 2 seconds. 2026-07-16 20:49:53 +02:00
landing-stats-install.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00
landing-stats.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00
make-demo-withdraw-qr.sh bank: strip :443 from taler://withdraw URIs for wallet apps. 2026-07-17 01:07:22 +02:00
README.md bank: default auto-confirm poll interval to 2 seconds. 2026-07-16 20:49:53 +02:00
refresh-demo-withdraw.sh bank: strip :443 from taler://withdraw URIs for wallet apps. 2026-07-17 01:07:22 +02:00
start_bank.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00
start_base_services_for_taler_bank.sh docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable 2026-07-13 10:12:00 +02:00

taler-bank scripts

Container: taler-hacktivism-bank (libeufin-bank, GOA, no IBAN).

File Container path User
start_base_services_for_taler_bank.sh /root/ root
start_bank.sh /usr/local/bin/ libeufin-bank
check_bank-health.sh /usr/local/bin/ libeufin-bank / any
landing-stats.sh /usr/local/bin/ root (in container) — writes /var/www/bank-landing/stats.json
landing-stats-install.sh host only root/podman — copies + runs + optional cron
demo-withdraw-api.py /usr/local/bin/ root — loopback :19096
install-demo-withdraw-api.sh host only installs API + nginx + auto-confirm
maintenance/raise-debit-limits.sh host or bank ctr raise all accounts debit_threshold (dry-run; --no-dry)
auto-confirm-withdrawals.sh /usr/local/bin/ root — explorer-only confirm loop
refresh-demo-withdraw.sh /usr/local/bin/ refresh static withdraw.uri
credit-account.sh host/ops admin → user credit

Usage

# root in container
./start_base_services_for_taler_bank.sh
# then as libeufin-bank in /usr/local/bin:
./start_bank.sh --restart

Landing stats (inside container)

# on koopa host — copy + run (writes /var/www/bank-landing/stats.json)
./landing-stats-install.sh
./landing-stats-install.sh --cron     # every minute inside container (* * * * *)
./landing-stats-install.sh --run-only

Details + JSON schema: configs/bank-landing/README.md.

Demo withdraw + auto-account API

demo-withdraw-api.py listens on 127.0.0.1:19096 (proxied by nginx on the landing):

Path Behaviour
GET /demo-withdraw.json Mint one-shot withdraw from shared explorer pool; write withdraw.uri + watch ids
GET /auto-account.json Public POST /accounts with generated goa-account-<random> user + password containing pleasechangeme; balance GOA:0; return credentials once

Install / restart:

./install-demo-withdraw-api.sh
# Public checks:
curl -sS https://bank.hacktivism.ch/intro/demo-withdraw.json | head
curl -sS https://bank.hacktivism.ch/intro/auto-account.json | head   # creates a real account

Requires python3 in the bank container. Env: BANK_URL, BANK_USER/BANK_PASS (or /root/bank-explorer-password.txt), AMOUNT (default GOA:10 for shared withdraws).

Auto-confirm (explorer only)

# loop inside container — refuses non-explorer unless ALLOW_NON_EXPLORER=1
auto-confirm-withdrawals.sh --loop 2

Only confirms withdrawals owned by explorer when status is selected (community demo path). Does not confirm arbitrary customer withdraws.

Stable ops (via koopa-external if LAN koopa is down):

  • One process only (flock on /var/run/auto-confirm-withdrawals.lock)
  • QUIET=1 + summary tick checked=… selected=… each loop
  • Watch list capped (WATCH_MAX=80, prune of bloated withdraw-watch.ids)
  • Status via taler-integration/withdrawal-operation/{id}
  • Reinstall: ./install-demo-withdraw-api.sh on host with podman access to taler-hacktivism-bank

Config

See configs/taler-hacktivism-bank/ and configs/bank-landing/.