Container-Stack für GNU Taler (Exchange, Merchant, LibEuFin Bank) mit optionalem Caddy-Reverse-Proxy, automatischer DB-Initialisierung und optionalem WordPress/WooCommerce-Demo-Shop mit dem GNU-Taler-Payment-Plugin.
3. Build: `./scripts/build-image.sh` (liest `.env` für Refs/URLs). Alternativ mit expliziten Build-Args, da `docker build ...` die `.env` NICHT automatisch lädt:
5. Bank-Token erzeugen: `./scripts/provision-bank-user.sh` (Bank-Service muss laufen). Token steht danach in `TOKEN_OUTPUT` (Default `bank/token-info.txt`); Wert in `.env` bei `LIBEUFIN_MERCHANT_TOKEN` eintragen.
6. Optional: Exchange-Payto automatisch freischalten, indem du in `.env``ENABLE_EXCHANGE_ACCOUNT=1` setzt (PAYTO/Hosts anpassen); Job läuft als `exchange-account-init`.
7. WordPress/WooCommerce (optional): `WP_DB_*`, `WP_URL`, Admin-Creds und `WORDPRESS_HOST` in `.env` setzen; `wp-init` installiert WordPress, WooCommerce und das GNU-Taler-Payment-Plugin.
## Caddy/Reverse-Proxy
- Hosts steuerst du über `BANK_HOST`, `EXCHANGE_HOST`, `MERCHANT_HOST`, `WORDPRESS_HOST`, ACME-Mail über `CADDY_ACME_EMAIL`.
- Bei Domainwechsel BASE_URL/PAYTO in der `.env` anpassen; Templates rendern automatisch beim Start.
- Direktes Port-Mapping (8080/8081/9966/8085) kannst du entfernen, wenn nur Caddy nach außen gehen soll.
## Hinweise
- Passwörter in `.env` müssen zu `postgres/init/01-init-taler.sh` passen (werden automatisch übernommen).
- Master-Key muss stabil bleiben; nur Pfad mounten, nicht neu generieren.
- Wenn `ENABLE_EXCHANGE_ACCOUNT=0`, musst du das Offline-Tool manuell ausführen (`scripts/enable-exchange-account.sh` im Exchange-Container).
- Bei eigener CA `EXCHANGE_CURL_OPTS="-k"` setzen, wenn der Offline-Job `/keys` über HTTPS abfragt.
- Nach Passwortänderungen in `.env` ist kein manuelles SQL-Rendering nötig; das Init-Skript liest sie beim Start.
- Release-Refs/Tarballs: Tags/Commits unter `https://git.taler.net/{gnunet,exchange,merchant,libeufin}.git/` ansehen (Tarballs via `.../snapshot/<tag>.tar.gz`) und `*_REF`/`GNUNET_TARBALL_URL` entsprechend setzen.
- Offline-Tarball: Lege ein GNUnet-Tarball unter `vendor/gnunet.tar.gz` ab, um es beim Build zu nutzen; bei unvollständigem Tarball fällt der Build auf Git zurück.