4.6 KiB
4.6 KiB
gnutaler-docker (DE)
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.
Bestandteile
compose.yml: Services postgres, exchange, merchant, bank, optionaler Caddy (*.domain.tld), einmaligerexchange-account-initJob, optionalemariadb/wordpress/wp-init.Dockerfile: Baut GNUnet/Taler/LibEuFin aus Git, legt Helper-Skripte ins Image.entrypoints/with-dbinit.sh: Rendert Templates viaenvsubst, wartet auf Postgres, führt*-dbinit, setzt LibEuFin-Admin/User-Passwörter.postgres/init/01-init-taler.sh: Legt DB-User/-Datenbanken mit Passwörtern aus der.envan.scripts/enable-exchange-account.sh: Offline-Tool zum Freischalten des Exchange-Payto-Kontos (optional, überENABLE_EXCHANGE_ACCOUNT).scripts/provision-bank-user.sh: Legt Bank-User an, setzt Debit-Limit, erzeugt einen Token und schreibt ihn auf den Host.exchange/…,merchant/…,bank/…: Templated Configs plus Terms/Privacy.caddy/Caddyfile: Reverse-Proxy mit Hosts aus der Umgebung, ACME-Zertifikate.wordpress-Stack: MariaDB + WordPress + WP-CLI-Init, installiert WooCommerce undgnu-taler-payment-for-woocommerce.
Schnellstart
- Voraussetzungen: Docker + Docker Compose.
.envaus.env.examplekopieren und füllen (Passwörter, Hosts/URLs, ACME-Mail, Master-Key,EXCHANGE_SECRETS_PATH, etc.). Wichtig:EXCHANGE_SECRETS_PATH: Host-Pfad mit dem Exchange-Master-Privatschlüssel (persistieren!).MASTER_PUBLIC_KEY: zum Master-Privatschlüssel passend.LIBEUFIN_MERCHANT_TOKEN: erst nach Token-Generierung eintragen (siehe unten).- Versionen:
GNUNET_REF(Default v0.26.1),EXCHANGE_REF,MERCHANT_REF,LIBEUFIN_REF, optionalGNUNET_TARBALL_URLfür Tarball-Builds.
- Build:
./scripts/build-image.sh(liest.envfür Refs/URLs). Alternativ mit expliziten Build-Args, dadocker build ...die.envNICHT automatisch lädt:docker build \ --build-arg GNUNET_TARBALL_URL="$GNUNET_TARBALL_URL" \ --build-arg GNUNET_REF="$GNUNET_REF" \ --build-arg EXCHANGE_REF="$EXCHANGE_REF" \ --build-arg MERCHANT_REF="$MERCHANT_REF" \ --build-arg LIBEUFIN_REF="$LIBEUFIN_REF" \ -t taler-stack:build . - Start:
docker compose up -d - Bank-Token erzeugen:
./scripts/provision-bank-user.sh(Bank-Service muss laufen). Token steht danach inTOKEN_OUTPUT(Defaultbank/token-info.txt); Wert in.envbeiLIBEUFIN_MERCHANT_TOKENeintragen. - Optional: Exchange-Payto automatisch freischalten, indem du in
.envENABLE_EXCHANGE_ACCOUNT=1setzt (PAYTO/Hosts anpassen); Job läuft alsexchange-account-init. - WordPress/WooCommerce (optional):
WP_DB_*,WP_URL, Admin-Creds undWORDPRESS_HOSTin.envsetzen;wp-initinstalliert 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 überCADDY_ACME_EMAIL. - Bei Domainwechsel BASE_URL/PAYTO in der
.envanpassen; 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
.envmüssen zupostgres/init/01-init-taler.shpassen (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.shim Exchange-Container). - Bei eigener CA
EXCHANGE_CURL_OPTS="-k"setzen, wenn der Offline-Job/keysüber HTTPS abfragt. - Nach Passwortänderungen in
.envist 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_URLentsprechend setzen. - Offline-Tarballs: Lege Tarballs unter
vendor/ab (gnunet-*.tar.gz,exchange-*.tar.gz,merchant-*.tar.gz,libeufin-*.tar.gz); bei unvollständigem Tarball fällt der Build auf Git zurück. - Release-Tarballs laden:
./scripts/fetch-tarballs.sh(nutzt aktuelle Stable-Versionen; per*_VERSIONoder*_TARBALL_URLüberschreibbar).
Nützliche Kommandos
- Logs:
docker compose logs -f exchange(oder bank/merchant/caddy/wordpress). - Bank-Token/Users neu provisionieren:
./scripts/provision-bank-user.sh - Payto-Enable manuell:
docker compose run --rm exchange /usr/local/bin/enable-exchange-account.sh PAYTO_URI=...