84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
# taler-merchant scripts
|
|
|
|
Mirrored from podman `taler-hacktivism`.
|
|
|
|
| File | Location in container | User |
|
|
|------|----------------------|------|
|
|
| `start_base_services_for_taler.sh` | `/root/` | root |
|
|
| `start_merchant.sh` | `/usr/local/bin/` | `taler-merchant-httpd` |
|
|
| `ensure_merchant_helpers.sh` | `/usr/local/bin/` | root → `taler-merchant-httpd` |
|
|
| `setup_credit_facade.sh` | host root (`/root/koopa-admin-log/…`) | root on koopa |
|
|
| `check_merchant-health.sh` | `/usr/local/bin/` | any |
|
|
| `certbot_renew.sh` | `/root/scripts/` | root (bg from base) |
|
|
| `stats--merchant-payments.sh` | `/usr/local/bin/` | ops |
|
|
| `taler-hacktivism-email-helper.sh` | `/usr/local/bin/` | merchant (SMTP password via env in git mirror) |
|
|
| `taler-hacktivism-sms-helper-wrapper.sh` | `/usr/local/bin/` | merchant |
|
|
|
|
### Settlement (wired / transfers)
|
|
|
|
Automatic import needs:
|
|
|
|
1. **`credit_facade_url`** = `…/accounts/$BANK_USER/taler-revenue/` (not `taler-wire-gateway/`)
|
|
2. **Bearer** bank token in `credit_facade_credentials` (Basic fails on history)
|
|
3. Running **`taler-merchant-wirewatch`** + **`taler-merchant-depositcheck`**
|
|
|
|
```bash
|
|
# on koopa as root
|
|
./setup_credit_facade.sh
|
|
./ensure_merchant_helpers.sh # inside container or via start_merchant
|
|
```
|
|
|
|
SMS backends are symlinks into `/var/taler-src/...` (not copied).
|
|
|
|
## Self-build deploy (webui tag + merchant master)
|
|
|
|
From a laptop with `ssh koopa` + `pnpm`/`node` (e.g. clementine):
|
|
|
|
```bash
|
|
cd ~/src/koopa/koopa-admin-log
|
|
chmod +x scripts/taler-merchant/build-deploy-webui-1.6.11-merchant-master.sh
|
|
./scripts/taler-merchant/build-deploy-webui-1.6.11-merchant-master.sh
|
|
```
|
|
|
|
What it does:
|
|
|
|
1. **Clone** `taler-typescript-core` **tag `v1.6.11`**, build SPA, install into
|
|
`taler-hacktivism:/usr/share/taler-merchant-webui` (backup `…bak-selfbuild-*`).
|
|
2. **Inside the container:** update `/var/taler-src/merchant` to **master**,
|
|
`./bootstrap && ./configure --prefix=/usr && make && make install`.
|
|
3. **`start_merchant.sh --restart`** + smoke `/config` + `/webui/`.
|
|
|
|
Env knobs: `SKIP_WEBUI=1`, `SKIP_MERCHANT=1`, `SKIP_RESTART=1`,
|
|
`WEBUI_TAG=…`, `MERCHANT_REF=master`, `KOOPA_SSH=koopa`.
|
|
|
|
## Portal / instance IDs: **lowercase only**
|
|
|
|
Merchant SPA (`/webui/`) and `/instances/{id}/…` require **lowercase** instance
|
|
ids. Uppercase or mixed case → **weird HTTP 401** (looks like bad password).
|
|
Display names may be mixed case; **ids must be lowercase** (`goa-shop`, not
|
|
`Goa-Shop`). See `configs/taler-hacktivism/README.md`.
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# root in container
|
|
./start_base_services_for_taler.sh
|
|
# then as taler-merchant-httpd in /usr/local/bin:
|
|
./start_merchant.sh --restart
|
|
# nginx (TLS frontend) if not already up — root:
|
|
# /etc/init.d/nginx start
|
|
./check_merchant-health.sh
|
|
```
|
|
|
|
### `check_merchant-health.sh`
|
|
|
|
| Check | Severity |
|
|
|-------|----------|
|
|
| socket + listener + httpd + nginx | FAIL |
|
|
| merchant `/config` (unix sock or `:9010`) | FAIL |
|
|
| each enabled `[merchant-exchange-*]`: `GET …/keys` | FAIL |
|
|
| `MASTER_KEY` matches `master_public_key` in `/keys` | FAIL |
|
|
| helpers (webhook, exchangekeyupdate, depositcheck) | WARN |
|
|
|
|
Disabled exchanges (`DISABLED = YES`) are skipped.
|
|
If public exchange URL is unreachable from the container, falls back to `http://127.0.0.1:9011/keys` (and pasta host IPs).
|