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.
3.6 KiB
Bank — live container taler-hacktivism-bank
Reflected from host koopa.
| Item | Live |
|---|---|
| Container | taler-hacktivism-bank |
| Image | localhost/taler-hacktivism-banking:live |
| Ports | 9012 (API), 9013 (landing) |
| Site | https://bank.hacktivism.ch |
Config path in this repo: configs/taler-hacktivism-bank/ (was configs/taler-bank/).
Scripts: scripts/taler-bank/. Secrets: koopa-admin-secrets/.../taler-bank/ → /root/bank-*-password.txt.
Image: docker.io/library/debian:trixie + package libeufin-bank
Publish: 9012/tcp only
Labels: org.hacktivism.service=taler-bank, host_port=9012, site=bank.hacktivism.ch, currency=GOA
Role
Regional GOA Exploration Bank for GNU Taler:
- No IBAN, no libeufin-nexus, no fiat conversion (
ALLOW_CONVERSION = no) WIRE_TYPE = x-taler-bank(payto://x-taler-bank/bank.hacktivism.ch/…)- Wallet default exchange:
https://exchange.hacktivism.ch/ - Mobile withdraw: Bank SPA → login → Withdraw → Taler Wallet (QR / deeplink)
Config layout (merchant/exchange pattern)
| Path in container | Mirror |
|---|---|
libeufin-bank.conf |
includes: libeufin-bank.conf.includes.txt |
bank-overrides.conf |
bank-overrides.conf |
Manual start
| Path | User | Role |
|---|---|---|
/root/start_base_services_for_taler_bank.sh |
root | logs, postgres, DB ensure → shell as libeufin-bank |
/usr/local/bin/start_bank.sh |
libeufin-bank | start / --restart libeufin-bank serve |
/usr/local/bin/check_bank-health.sh |
any | health |
Ports / Caddy
| Port | Role |
|---|---|
| 9012 | libeufin-bank HTTP (podman pasta) |
| 9001 | Caddy HTTPS bank.hacktivism.ch → 127.0.0.1:9012 |
DNS: A/AAAA for bank.hacktivism.ch → koopa public IP (required for TLS/ACME and phones).
Accounts (typical)
| Login | Purpose |
|---|---|
admin |
bank admin (password on host /root/bank-admin-password.txt) |
exchange |
Taler exchange wire account (is_taler_exchange) |
explorer |
demo user for phone withdraw (debit_threshold for regional GOA) |
Mobile withdraw (GOA)
- Install GNU Taler Wallet (Android / iOS / browser).
- Open https://bank.hacktivism.ch/ (after DNS + cert work).
- Login as
explorer(or registered user with debt headroom). - Withdraw → amount in GOA → open / scan with wallet.
- Wallet uses
DEFAULT_EXCHANGE= exchange.hacktivism.ch.
Exchange must have wire account pointing at this bank (payto + wire gateway credentials) and offline enable-account for /keys withdraw to fully work.
Details (diagram /keys ↔ Wire ↔ Account):
configs/taler-exchange/README.md → section /keys, Wire and Account.
Public landing (withdraw QR)
English intro + QR: https://bank.hacktivism.ch/ → /intro/
Details: configs/bank-landing/. Refresh demo URI: scripts/taler-bank/make-demo-withdraw-qr.sh.
Wallet says “transfer money” — auto-confirm
Normal Taler bank flow after the wallet selects the exchange:
- Withdrawal status →
selected - Bank must
POST …/withdrawals/$ID/confirm→ wires GOA user → exchange - Exchange wirewatch sees credit → wallet can finish withdraw
For the demo QR (explorer), automate step 2:
# once
/root/auto-confirm-withdrawals.sh
# loop (e.g. every 4s)
nohup /root/auto-confirm-withdrawals.sh --loop 4 >>/var/log/auto-confirm-withdrawals.log 2>&1 &
Script: scripts/taler-bank/auto-confirm-withdrawals.sh
Watches IDs in /var/www/bank-landing/withdraw.uri and withdraw-watch.ids.