chore: restore testnet compose files + lock in gRPC localhost fix#55
Conversation
`compose.testnet.env` and `docker-compose.testnet.yml` were deleted at some point during the May 22 testnet stack reshuffles. The running testnet container survived but was orphaned from its compose context: `docker compose down/up` would no longer reach it, and a `docker rm` would have lost the env config entirely (with no way to recreate without re-doing the manual `docker run` from scratch). Today (2026-05-26) the missing files surfaced via a different bug: the indexer's gRPC tail subscription was failing every ~130s on `https://grpc-testnet.sentrixchain.com:443`. Cloudflare's HTTP/2 stream timeout was resetting the long-running subscription. Indexer sits on the same host as the testnet fullnode-1 gRPC server (`127.0.0.1:50055`) under `network_mode: host`, so the public URL was doing a pointless hop through CF + Caddy. Fix already applied via manual `docker run` with `GRPC_URL=http://127.0.0.1:50055` — 0 h2 errors confirmed across the 130s failure cycle after the swap. This commit locks in: * `compose.testnet.env.example` — template with the local GRPC_URL and the why-not-public-URL rationale in comments. `compose.testnet.env` itself stays gitignored (carries real Postgres password). * `docker-compose.testnet.yml` — testnet port overrides (:5437 pg, :8089 api) plus the `network_mode: host` declaration the manual `docker run` was carrying. * `.gitignore` — `compose.testnet.env` added alongside `compose.env`. Next clean compose-driven testnet recreate: docker compose -f docker-compose.yml -f docker-compose.testnet.yml \ --env-file compose.testnet.env \ --project-name indexer-rs-testnet \ up -d --force-recreate The running container survives any docker daemon or host restart via its `unless-stopped` policy. Only a `docker rm` would force a recreate, and now there are committed files for that recreate.
|
Warning Review limit reached
More reviews will be available in 44 minutes and 29 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
compose.testnet.env+docker-compose.testnet.ymlwere deleted at some point during the May 22 testnet stack reshuffles. Running testnet container survived (orphaned from compose context); a futuredocker rmwould have lost the env config with no recovery path.Today's gRPC tail reconnect-loop bug surfaced the gap. Fix applied manually via
docker runwithGRPC_URL=http://127.0.0.1:50055— 0 h2 errors confirmed past the 130s failure cycle. This PR locks the fix into committed config:compose.testnet.env.example— template with local GRPC_URL + why-not-public rationale in comments.compose.testnet.envstays gitignored.docker-compose.testnet.yml— testnet port overrides (:5437pg,:8089api) +network_mode: hostfor the indexer (required for the localhost gRPC_URL to resolve to the host's loopback)..gitignore— addscompose.testnet.env.Risk tier
Test plan
docker compose -f docker-compose.yml -f docker-compose.testnet.yml --env-file compose.testnet.env --project-name indexer-rs-testnet config— resolves cleanly withGRPC_URL: http://127.0.0.1:50055+network_mode: hostfor the indexerRollback
Revert this PR. The running container is independent of these files (orphaned from compose); revert only affects future recreates.