koopa-admin-log/scripts/taler-merchant/README.md
2026-07-18 14:32:29 +02:00

3.2 KiB

taler-merchant scripts

Mirrored from podman taler-hacktivism.

File Location in container User
start_base_services_for_taler.sh /root/ root
start_merchant.sh /usr/local/bin/ taler-merchant-httpd
ensure_merchant_helpers.sh /usr/local/bin/ root → taler-merchant-httpd
setup_credit_facade.sh host root (/root/koopa-admin-log/…) root on koopa
check_merchant-health.sh /usr/local/bin/ any
certbot_renew.sh /root/scripts/ root (bg from base)
stats--merchant-payments.sh /usr/local/bin/ ops
taler-hacktivism-email-helper.sh /usr/local/bin/ merchant (SMTP password via env in git mirror)
taler-hacktivism-sms-helper-wrapper.sh /usr/local/bin/ merchant

Settlement (wired / transfers)

Automatic import needs:

  1. credit_facade_url = …/accounts/$BANK_USER/taler-revenue/ (not taler-wire-gateway/)
  2. Bearer bank token in credit_facade_credentials (Basic fails on history)
  3. Running taler-merchant-wirewatch + taler-merchant-depositcheck
# on koopa as root
./setup_credit_facade.sh
./ensure_merchant_helpers.sh   # inside container or via start_merchant

SMS backends are symlinks into /var/taler-src/... (not copied).

Self-build deploy (webui tag + merchant master)

From a laptop with ssh koopa + pnpm/node (e.g. clementine):

cd ~/src/koopa/koopa-admin-log
chmod +x scripts/taler-merchant/build-deploy-webui-1.6.11-merchant-master.sh
./scripts/taler-merchant/build-deploy-webui-1.6.11-merchant-master.sh

What it does:

  1. Clone taler-typescript-core tag v1.6.11, build SPA, install into
    taler-hacktivism:/usr/share/taler-merchant-webui (backup …bak-selfbuild-*).
  2. Inside the container: update /var/taler-src/merchant to master,
    ./bootstrap && ./configure --prefix=/usr && make && make install.
  3. start_merchant.sh --restart + smoke /config + /webui/.

Env knobs: SKIP_WEBUI=1, SKIP_MERCHANT=1, SKIP_RESTART=1,
WEBUI_TAG=…, MERCHANT_REF=master, KOOPA_SSH=koopa.

Portal / instance IDs: lowercase only

Merchant SPA (/webui/) and /instances/{id}/… require lowercase instance ids. Uppercase or mixed case → weird HTTP 401 (looks like bad password). Display names may be mixed case; ids must be lowercase (goa-shop, not Goa-Shop). See configs/taler-hacktivism/README.md.

Usage

# root in container
./start_base_services_for_taler.sh
# then as taler-merchant-httpd in /usr/local/bin:
./start_merchant.sh --restart
# nginx (TLS frontend) if not already up — root:
# /etc/init.d/nginx start
./check_merchant-health.sh

check_merchant-health.sh

Check Severity
socket + listener + httpd + nginx FAIL
merchant /config (unix sock or :9010) FAIL
each enabled [merchant-exchange-*]: GET …/keys FAIL
MASTER_KEY matches master_public_key in /keys FAIL
helpers (webhook, exchangekeyupdate, depositcheck) WARN

Disabled exchanges (DISABLED = YES) are skipped.
If public exchange URL is unreachable from the container, falls back to http://127.0.0.1:9011/keys (and pasta host IPs).