📝 docs(README): add comprehensive setup instructions for gnutaler-docker
- include container stack components and services - provide quick start guide with prerequisites and setup steps - describe Caddy/Reverse-Proxy configuration - add notes on environment variables and password matching - list useful commands for logs and user provisioning
This commit is contained in:
parent
6c80cc725f
commit
9138160322
1 changed files with 38 additions and 0 deletions
38
README.md
38
README.md
|
|
@ -1,2 +1,40 @@
|
||||||
# gnutaler-docker
|
# gnutaler-docker
|
||||||
|
|
||||||
|
Container-Stack für GNU Taler (Exchange, Merchant, LibEuFin Bank) mit optionalem Caddy-Reverse-Proxy und automatischer DB-Initialisierung.
|
||||||
|
|
||||||
|
## Bestandteile
|
||||||
|
- `compose.yml`: Services postgres, exchange, merchant, bank, optionaler Caddy (`*.domain.tld`), einmaliger exchange-account-init Job.
|
||||||
|
- `Dockerfile`: Baut GNUnet/Taler/LibEuFin aus Git, legt Helper-Skripte ins Image.
|
||||||
|
- `entrypoints/with-dbinit.sh`: Rendert Templates via `envsubst`, 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 `.env` an.
|
||||||
|
- `scripts/enable-exchange-account.sh`: Offline-Tool zum Enable-Account für den Exchange (optional, via `ENABLE_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, Terms/Privacy.
|
||||||
|
- `caddy/Caddyfile`: Reverse-Proxy mit Hosts aus Environment, holt Zertifikate über ACME.
|
||||||
|
|
||||||
|
## Schnellstart
|
||||||
|
1. Voraussetzungen: Docker + Docker Compose.
|
||||||
|
2. `.env` aus `.env.example` kopieren 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).
|
||||||
|
3. Build: `docker build -t taler-stack:build .`
|
||||||
|
4. Start: `docker compose up -d`
|
||||||
|
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`.
|
||||||
|
|
||||||
|
## Caddy/Reverse-Proxy
|
||||||
|
- Hosts steuerst du über `BANK_HOST`, `EXCHANGE_HOST`, `MERCHANT_HOST`, ACME-Mail über `CADDY_ACME_EMAIL`.
|
||||||
|
- Bei Domainwechsel passen BASE_URL/PAYTO in der `.env` ebenfalls an (Templates rendern automatisch beim Start).
|
||||||
|
- Direktes Port-Mapping (8080/8081/9966) 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 (wird automatisch per Env gesetzt).
|
||||||
|
- 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 Zertifikaten mit eigenem CA kannst du `EXCHANGE_CURL_OPTS="-k"` setzen, wenn der Offline-Job die `/keys`-URL abfragt.
|
||||||
|
|
||||||
|
## Nützliche Kommandos
|
||||||
|
- Logs eines Dienstes: `docker compose logs -f exchange` (analog bank/merchant/caddy).
|
||||||
|
- 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=...`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue