550f71d2abfc6dba3bd60a6c563a84e2741f5500
The gateway's /bee page shows a summary of the node. This exposes the monitor behind it, which is where batch fullness, the bucket map, wallet and chequebook runway, and the ledger of every top-up made or refused actually live. Left unrouted originally on the reasoning that its UI can spend xBZZ. That was the wrong test. The protection is that the app fails CLOSED -- every /api/admin route demands an x-admin-token and returns 503 when ADMIN_TOKEN is unset -- not that the port was hard to reach. Relying on the latter is how the batch went unwatched long enough to take the gateway down; a dashboard nobody can open is a dashboard nobody reads. Bee itself stays unpublished. Reaching it through the monitor's passthrough still requires the admin token, which is the whole reason the monitor sits in front of it. Also bumps the image to pick up the fix that makes Settings caps bind manual spending, not just the poller. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YLYiaPYror1vLKApYKrxTu
DevOps
This repo manages the two environments for the Token4Token hosted gateway:
local/— docker-compose files for running development and testing environments locally. Tests run inside Docker, no host-side Bun needed.hostinger/— Docker Swarm stack files for the remote production cluster on Hostinger.
The layout mirrors cipherdolls/devops.
Local development
cd local
make up # bring the dev stack up (postgres, redis, bee, anvil, api, worker)
make logs # tail
make down # clean shutdown
The dev compose mounts ../../hosted-gateway/src so file changes hot-reload
inside the container (bun run --watch).
Local testing
Every E2E spec runs inside Docker against a fresh stack (anvil fork of Gnosis, deployed contracts, a t4t-provider container against a stub Ollama).
cd local
make test SPEC=accounts # run one spec
make test-all # run every spec sequentially
make test brings up postgres + redis + anvil + bee + t4t-provider + hosted
api + worker, then runs the bun test container against them. After the run
it tears everything down (-v --remove-orphans).
Hostinger / production
Stack files in hostinger/ are applied via docker stack deploy from the CI
pipeline. Not relevant for local development.
Languages
Makefile
77.2%
TypeScript
18.7%
Dockerfile
4.1%