Make the gp-server setup wizard grin-wallet-faithful about the two secrets that belong to the operator, and let them decide how the till restarts. - Wallet password: the wizard now PROMPTS for it (entered twice, confirmed to match, hidden echo on a TTY) instead of auto-generating it. Only the service secrets (API token, admin token, webhook secret) are still generated. - Seed: a fresh 24-word seed is shown once and gated behind an explicit "wrote it down" acknowledgement before proceeding, like grin-wallet init; the paste-existing-recovery-phrase path is kept and gated the same way. - Restart mode: the wizard offers both and defaults to unattended. Unattended seals the chosen password to the host as a 0400 systemd credential so the service auto-restarts (honest trade-off disclosed). Manual persists nothing and writes a gp-server.service.d/manual.conf drop-in that repoints the credential to a tmpfs path the operator populates via systemd-ask-password at each start. - Pure helpers (validate_password, passwords_match, RestartMode/parse, parse_ack, render_manual_dropin, mode-aware render_env) unit-tested in gp-core; wizard flow tested in gp-server (fresh/paste, unattended/manual, mismatch reprompt). - Reconfigure keeps an existing wallet's seed, password, and restart mode untouched (never re-prompts), so a running till is undisturbed. - Updated deploy/gp-server.service, deploy/.env.example, README, and the WooCommerce/Medusa quickstarts to drop all auto-generated-password wording.
2.8 KiB
WooCommerce quick start
Take Grin payments on your WooCommerce store in four steps. You will run the GoblinPay till on your own server, then paste three values into WooCommerce.
1. Install GoblinPay and run the wizard
On your server (a small Linux box is plenty):
# build + install the binary and the service unit, then it offers the wizard
sudo ./deploy/install.sh
# or, if GoblinPay is already installed:
sudo gp-server setup
The wizard asks a few questions (all with defaults). You choose your wallet password (entered twice) and write down the 24-word seed it shows once; it generates the service tokens, creates your till wallet, picks a healthy Grin node, asks how the till should restart (default unattended), and writes the config. Two answers matter for WooCommerce:
- Your till URL - either a subdomain like
https://pay.myshop.com, or a path on your existing shop domain likehttps://myshop.com/payif you would rather not add a DNS record (put a reverse proxy in front either way; the wizard prints the exact snippet). - Your shop URL -
https://myshop.com. The wizard turns this into your webhook URL for you.
When it finishes it prints three values and a webhook URL. Keep that screen. Then start the till:
sudo systemctl start gp-server
2. Install the plugin
Download goblinpay-woocommerce.zip (a GoblinPay release artifact; you can also
build it yourself with deploy/package-woocommerce.sh). In WordPress:
Plugins → Add New → Upload Plugin → choose the zip → Install → Activate.
3. Paste the three values
WooCommerce → Settings → Payments → GoblinPay (Grin) → Manage:
| Field | Paste |
|---|---|
| GoblinPay URL | your till URL (e.g. https://pay.myshop.com) |
| API Token | the gp_live_… value from the wizard |
| Webhook Secret | the whsec_… value from the wizard |
| Matching mode | Per-invoice identity (recommended) |
Tick Enable Grin payments via GoblinPay and Save changes. The wizard already pointed the till's webhook at your shop, so nothing else to wire.
4. Test a payment
Place a test order and choose the Grin method at checkout. You are shown a QR (or redirected to the hosted checkout). Pay it from your Goblin wallet: scan, approve, done. The order moves to processing once the payment confirms on chain (default 10 confirmations).
Watch WooCommerce → Status → Logs (source goblinpay) if you enabled debug
logging, or the till's own admin dashboard, to follow the payment.
Notes
- Refunds are manual: GoblinPay is receive-only, so refund a customer by sending Grin back from your wallet.
- Run the till hot but light: it has its own seed, so keep only a small working balance on it and sweep to your main wallet regularly.
- For the full plugin reference see
connectors/woocommerce/INSTALL.md.