Commit Graph
24 Commits
Author SHA1 Message Date
Felix FaerberandClaude Opus 4.7 c6879f1a79 upgrade prod bee to 2.8.0 to match homelab
Homelab migrated to a fresh data dir with --target-neighborhood matching
its original swarmOverlay, so its on-chain provider registration stays
valid. Both ends on 2.8 now speak the same v15 handshake protocol; the
prior --bootnode workaround for v14 isolation is no longer needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:04:27 +03:00
Felix FaerberandClaude Opus 4.7 2263fed477 bootstrap prod bee from the homelab bee
The default mainnet.ethswarm.org bootnodes all reject Bee 2.7.x's
v14 handshake — prod Bee was stuck at 0 peers. Point --bootnode at
the homelab node, which is the same version and reachable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:27:35 +03:00
Felix FaerberandClaude Opus 4.7 37f388c28c roll prod bee back to 2.7.2-rc1 to match homelab
Bee 2.8 changed the swarm handshake protocol; homelab Bee can't move
to 2.8 (silent exit 2 on the existing data dir) so the two nodes
couldn't directly /connect — PSS routing kept failing. Match versions
to restore peering.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 16:48:34 +03:00
Felix FaerberandClaude Opus 4.7 bc3079b97a advertise public NAT addr so bee flips to reachability=Public
Bee dashboard reports reachability=Private and underlay only lists
172.x/127.0.0.1 — peers see our node as unreachable, PSS messages
won't route. Setting BEE_NAT_ADDR to the host's public IP+port lets
libp2p autonat confirm reachability.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:19:41 +03:00
Felix FaerberandClaude Opus 4.7 2f4b4d09fa flip bee to full-node mode for PSS
Light nodes can dial the network but PSS delivery requires nodes to
participate as forwarders. Job 0x7355…99fe stayed Pending on-chain
because the provider never received the PSS notify.

Trade-off: full nodes consume more disk + bandwidth and need a funded
chequebook to swap with peers (currently 0 — may need a top-up).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:48:25 +03:00
Felix FaerberandClaude Opus 4.7 b9e067e187 re-pin bee to 2.8.0
Try the newest version again now that port 1634 is published and the
Hostinger firewall lets inbound through.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:31:43 +03:00
Felix FaerberandClaude Opus 4.7 ff63280ae5 pin bee to 2.7.2-rc1 (same as the working remote node)
2.7.1 and 2.8.0 both get rejected by the mainnet bootnodes with
"protocols not supported: [/swarm/handshake/14.0.0/handshake]".
2.7.2-rc1 is the version bee.ffaerber.duckdns.org runs with 25 live
peers, so try that.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:26:28 +03:00
Felix FaerberandClaude Opus 4.7 e902455c19 revert: keep BEE_API_URL pointed at local prod_bee
Per request — don't fall back to the remote Bee. Local prod_bee will
need its peering fixed before /v1/chat/completions can dispatch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:25:31 +03:00
Felix FaerberandClaude Opus 4.7 42d6697328 point gateway at remote bee for PSS routing
Local prod_bee can't peer with the Swarm mainnet (bootnode handshake
mismatch — see prior commits pinning 2.7.1). Remote node at
bee.ffaerber.duckdns.org is 2.7.2-rc1 with 25 live peers + usable
stamps, so PSS dispatch works there. Keeping prod_bee in the stack
for now (idle but harmless) so we can swap back once mainnet bootnodes
are usable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:24:53 +03:00
Felix FaerberandClaude Opus 4.7 01f785933d pin bee to 2.7.1 — 2.8 handshake incompatible with mainnet
The latest tag (currently 2.8.0) speaks /swarm/handshake/14.0.0 which
the live mainnet bootnodes reject:
  protocols not supported: [/swarm/handshake/14.0.0/handshake]

2.7.1 was the last release before the bump. Node stays isolated on 2.8
no matter how many peers it dials, so PSS routing never works.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:22:05 +03:00
Felix FaerberandClaude Opus 4.7 6f11360492 publish bee p2p port 1634 to the host
Bee was listening on :1634 inside the container but the swarm service
had no ports: block, so external peers couldn't connect. Outbound-only
peering isn't enough for PSS forwarding.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:15:53 +03:00
Felix FaerberandClaude Opus 4.7 ae8fc4f872 redirect http -> https at traefik entrypoint
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 13:44:57 +03:00
Felix FaerberandClaude Opus 4.7 d733ad7890 serve frontend on apex t4t-gateway.com
Add `frontend` service running ghcr.io/token-for-token/hosted-gateway-frontend
behind Traefik on t4t-gateway.com + www.t4t-gateway.com. API router drops
the apex hostnames; api.t4t-gateway.com remains the gateway.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:37:41 +03:00
Felix FaerberandClaude Opus 4.7 1a0be4b794 stub xdg-open so prisma studio doesn't crash on browser launch
Prisma 7 dropped --browser none and hardcodes spawn('xdg-open'). Alpine
doesn't ship xdg-utils, so the spawn ENOENT bubbles to process exit and
the studio task fails after the server has already bound to :5555.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:33:38 +03:00
Felix FaerberandClaude Opus 4.7 7e155240c9 drop unsupported prisma studio flags
Prisma 7's studio CLI rejects --hostname and --browser. Default is fine.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:26:26 +03:00
Felix FaerberandClaude Opus 4.7 0dab8a9f4a set admin-auth password for t4t-gateway
Was still carrying the cipherdolls hash. New creds: admin / makelove.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:15:58 +03:00
Felix FaerberandClaude Opus 4.7 a365a5167c expose prisma studio at prisma.t4t-gateway.com
Run `prisma studio` alongside the migrate step so the prod_prisma service
serves the data browser. Behind Traefik basicauth (admin-auth middleware
defined on the traefik service).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 12:12:59 +03:00
Felix FaerberandClaude Opus 4.7 347cfbeb76 remove --api.insecure now that Host() rule is fixed
Was added to debug the v3 multi-host parse error. Dashboard remains
reachable behind basicauth at traefik.t4t-gateway.com.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:32:45 +03:00
Felix FaerberandClaude Opus 4.7 de8408bc53 pass --blockchain-rpc-endpoint as CLI flag
Bee 2.8's BEE_BLOCKCHAIN_RPC_ENDPOINT env var doesn't bind (chain stays
disabled, node exits with "factory fail: chain disabled"). The CLI flag
works. BEE_CHAIN_ENABLE is also redundant — providing the endpoint
implicitly enables chain.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:28:06 +03:00
Felix FaerberandClaude Opus 4.7 e31726adb3 fix bee chain config — use BEE_BLOCKCHAIN_RPC_ENDPOINT
Bee 2.x renamed BEE_SWAP_ENDPOINT to BEE_BLOCKCHAIN_RPC_ENDPOINT. With
the old name, Bee silently disables the chain backend and shuts down
with `factory fail: chain disabled`. Wire the endpoint inline so it
doesn't depend on the host .env.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:12:23 +03:00
Felix FaerberandClaude Opus 4.7 aad3643a0f fix multi-host router rule for traefik v3
v3 limits Host() to one parameter; chain with || for multiple. Error
seen in the api@swarm router: "unexpected number of parameters; got 3".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:01:24 +03:00
Felix FaerberandClaude Opus 4.7 adb1bfe534 expose traefik api on :8080 for debugging
Why: prod_api router triggers ACME (cert issued for api.t4t-gateway.com)
but proxied requests return 404. Need the api endpoint to inspect why.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:00:20 +03:00
Felix FaerberandClaude Opus 4.7 1c4678deee bump traefik to v3.7.1
v3 split the swarm provider out of `--providers.docker.swarmmode`. New
flags use `--providers.swarm.*`. v2.11.22 is well past its EoL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:41:02 +03:00
Felix FaerberandClaude Opus 4.7 032a22b6ee init devops repo
Mirrors cipherdolls/devops layout. Hostinger Swarm stacks for the t4t
hosted-gateway and local docker-compose for development + e2e tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 10:31:30 +03:00