ssh shop.dungeonbooks.com
No port flag, no client software. Any key connects, and no key connects too: without one you browse anonymously and can still buy. The shop never sees your private key; SSH proves you hold it by signing a challenge.
Host key fingerprint, to check on first connect:
SHA256:EXv5X+C23tnnR0ftxRP/Iq+3z3rL1ezcpbAy9S+zXLg
Keys inside: arrows or j/k move, enter opens, +/- change quantity,
c cart, s shop, a account, q quits. Checkout shows a QR code and a URL
for Square’s hosted page; the shop watches for the payment and says thank you.
Command mode
The API is also reachable over SSH, for anyone with a client and no browser. Send a command and the shop answers in JSON and exits, no terminal needed:
ssh shop.dungeonbooks.com books
ssh shop.dungeonbooks.com books 9780316568654
ssh shop.dungeonbooks.com buy 9780316568654:2 --ship
ssh shop.dungeonbooks.com order <order_id>
ssh shop.dungeonbooks.com cancel <checkout_id>Same shapes and same exit codes as the dungeon CLI: 0 done, 1 something
failed or you were rate limited, 2 malformed or a request the shop turned
down (400, 404, 409), 3 the order is still waiting. Errors are JSON on stderr. buy returns the checkout at once; poll
with order. Checkouts share the API’s rate limit: a burst of three, then one
every five seconds.
Automation should prefer the HTTP API. Sandboxes often have no SSH client, no
key, and a host-key prompt that blocks a script. If you must script SSH, pin
the host key rather than accepting whatever is offered on first connection:
this line is the key behind the fingerprint above, ready for known_hosts.
shop.dungeonbooks.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIITy6szP54vkrtWfCrSyQ6uFYL9JGjRWiqgzK3yVm9ux
What is stored
Nothing. There is no database. The logs do not record your key, address, or what you bought, and Square handles the card. Rate limiting works from in-memory buckets and forgets you when you leave.