taler-monitoring/DEPENDENCIES.md
Hernâni Marques 915e361157
release 1.19.1: document e2e helper PATH preflight + domains.conf lang
Docs-only bugfix so operators/agents smoke taler-helper-sqlite3 on the
mon PATH and set UI lang in domains.conf (lang=fr for FP).
2026-07-19 11:10:02 +02:00

3.8 KiB

taler-monitoring — host package dependencies

koopa (openSUSE Tumbleweed, user hernani)

Required (host-agent / GOA primary: urls inside versions)

Binary Package (zypper) Role
bash (base) runner
curl curl HTTPS/API probes + monpages FQDN checks
nmap nmap surface OS/service fingerprint (SURFACE_NMAP=1, v1.8.0+; OS detect may need root)
python3 python313-base (provides /usr/bin/python3) JSON, HTML site-gen, metrics
podman podman inside: podman exec into taler-hacktivism*
git git pin commit SHA in monitoring HTML footer
rsync rsync optional: deploy/sync suite
timeout / mktemp / getent coreutils / glibc helpers

Status on koopa (2026-07-18): all of the above present; rootless podman owns GOA containers.

Binary Package Role
qrencode qrencode encode taler:// / payto:// → PNG
zbarimg zbar decode PNG; exact payload match

Without these, QR checks WARN and skip encode/decode (apt install messages in code are Debian-oriented; on Tumbleweed use zypper).

# as root on koopa
zypper refresh
zypper in qrencode zbar
# verify as hernani:
command -v qrencode zbarimg

Optional (not needed for host-agent default)

Binary / tool When
jq nice-to-have; suite uses python3 for JSON
dig / bind-utils debug DNS; not required for default phases
ssh only for access mode ssh (laptop → KOOPA_SSH / stage INSIDE_SSH); not needed for host-podman
node + taler-wallet-cli (.mjs) e2e / ladder only (+ secrets)
taler-helper-sqlite3 on PATH required for e2e — wallet-core spawns it for withdraw accept-uri / pay; missing → ENOENT mid-ladder. Put next to wallet bindir (~/.local/bin on stagepaysan)
timeout (coreutils) preferred hard wall for wcli (suite falls back to perl only if missing)
secrets.env / admin passwords e2e only — never system packages

Preflight (agents / ops): before trusting e2e on a host, smoke on the same PATH mon uses (run-host-report / systemd user): command -v node taler-helper-sqlite3, node "$WALLET_CLI" --version, short temp-DB balance. Do not wait for a full mon run to discover ENOENT.

systemd user (no extra packages)

  • systemd user session + loginctl enable-linger hernani (already Linger=yes on koopa)
  • Units: host-agent/*.service|path|timer

Caddy HTML publish (separate from monitoring run)

  • Host Caddy already installed (root service).
  • Writing /var/www/monitoring-sites: either root rsync or directory owned/writable by hernani (you set this up).

outside-runner (macOS, outside-only timer)

Need Notes
bash, curl, python3, rsync, git (optional) usually Homebrew / Xcode CLT
No podman phases are urls versions only (SKIP_SSH=1)
qrencode / zbarimg optional for QR; brew install qrencode zbar if desired

Franc Paysan stage host (stagepaysan)

FP stage (stagepaysan via SSH alias francpaysan-stage-user): curl, python3, podman if inside, qrencode/zbar for full urls; suite at ~/src/taler-monitoring.

e2e on stagepaysan also needs user-local:

Path Role
~/.local/bin/node Node for wallet-cli
~/.local/bin/taler-wallet-cli.mjs (or WALLET_CLI=) wallet CLI
~/.local/bin/taler-helper-sqlite3 required — accept-uri / coins
~/francpaysan-secrets/stage/* bank admin + merchant token (layout like laptop francpaysan-secrets)

Host-agent PATH already puts $HOME/.local/bin first; still smoke-test under that PATH.