| .. | ||
| conf.d-merchant.conf | ||
| merchant-overrides.conf | ||
| nginx-taler-merchant.conf | ||
| README.md | ||
| taler-merchant.conf.includes.txt | ||
taler-merchant (container taler-hacktivism)
Image: localhost/taler-hacktivism-live:9010
Publish: 9010/tcp only
Labels: org.hacktivism.service=taler-merchant, host_port=9010, site=taler.hacktivism.ch
Config layout (same pattern as exchange)
| Path in container | Mirror in this dir |
|---|---|
taler-merchant.conf |
includes documented in taler-merchant.conf.includes.txt |
overrides.conf |
tooling — do not edit (not mirrored) |
merchant-overrides.conf |
merchant-overrides.conf |
conf.d/merchant.conf |
conf.d-merchant.conf |
nginx sites-available/taler-merchant |
nginx-taler-merchant.conf |
Secrets (secrets/*.secret.conf, SMTP password) are not mirrored.
Manual start (merchant model)
| Path | User | Role |
|---|---|---|
/root/start_base_services_for_taler.sh |
root | logs, SMS env, postgres → shell as taler-merchant-httpd |
/usr/local/bin/start_merchant.sh |
taler-merchant-httpd | start / --restart httpd + helpers |
/usr/local/bin/check_merchant-health.sh |
any | health (socket + nginx) |
Also under /usr/local/bin/: email/SMS helpers, stats--merchant-payments.sh.
Certbot loop: /root/scripts/certbot_renew.sh (started from base script).
Git scripts: scripts/taler-merchant/.
Site settings (overrides)
- Default currency: CHF (
[taler]/[merchant]) - Exchanges (multi-currency):
- CHF →
exchange.taler-ops.ch(package default[merchant-exchange-chf]intops.conf— do not redeclare asmerchant-exchange-tops) - GOA →
exchange.hacktivism.ch([merchant-exchange-goa]inmerchant-overrides.conf)
- CHF →
- SERVE: unix socket → nginx :9010 SSL → Caddy :9001
- Self-provisioning: YES; no mandatory TAN (SMS off)
- Terms:
TERMS_ETAG = merchant-tos-dual-v0— short dual-currency notice (GOA explorational + CHF real). Sources interms-src/; install withscripts/taler-merchant/install_dual_terms.shinside the container, then restarttaler-merchant-httpd. Public:https://taler.hacktivism.ch/terms
Wire status is per account × exchange: an x-taler-bank GOA payto shows ready for hacktivism and unsupported for taler-ops (expected). CHF/IBAN accounts use taler-ops.
Container → public exchange (pasta)
Inside pasta, exchange.hacktivism.ch must not resolve to 127.0.0.1 (merchant nginx self-signed). Pin public A in container /etc/hosts:
212.51.151.254 exchange.hacktivism.ch bank.hacktivism.ch taler.hacktivism.ch
After conf/hosts changes: taler-merchant-exchangekeyupdate -t and taler-merchant-kyccheck -t.## Ports
| Port | Role |
|---|---|
| 9010 | nginx TLS in container (podman) |
| unix sock | taler-merchant-httpd |
Demo instance (2026-07-09)
Self-provisioned shop goa-demo-cp4zqk, bank account same username, payto linked, seed GOA:5000.
Details + credential paths: demo-instance-goa-demo-cp4zqk.md.