Skip to content

Add local network Docker Compose harness - #62

Draft
chrypnotoad wants to merge 11 commits into
mainfrom
client-testing-local-network
Draft

Add local network Docker Compose harness#62
chrypnotoad wants to merge 11 commits into
mainfrom
client-testing-local-network

Conversation

@chrypnotoad

@chrypnotoad chrypnotoad commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a manually runnable Docker Compose local Liberdus network path so Playwright can run against a local web client instead of only https://liberdus.com/dev/.

Key additions:

  • Manual GitHub Actions smoke workflow for the local network.
  • Docker image and Compose service for server + proxy + web-client.
  • JS startup entrypoint for readable local-network orchestration.
  • Docker healthcheck for readiness.
  • Tagged @smoke Playwright command for smoke-only runs.
  • Short local-network documentation.

How It Works

The workflow is workflow_dispatch only in this repo. It checks out server, liberdus-proxy, and web-client-v2 into .deps/, builds the local-network image in its own step, starts the container, prints concise startup phases and healthcheck readiness reasons while waiting, then runs the tagged Playwright smoke tests against http://127.0.0.1:8080/.

scripts/local-network/start.js copies the mounted repos into a writable Docker volume, writes local proxy/web config, reuses cached builds when possible, starts a 10-node Shardus network with shardus start, waits for processing, starts liberdus-proxy, writes network.js, and serves the web client.

Playwright still defaults to https://liberdus.com/dev/ unless PLAYWRIGHT_BASE_URL or BASE_URL is set. Global setup now requires the modern network params (stabilityFactorStr, transactionFeeUsdStr, and minTollUsdStr) and fails fast if they are missing.

Validation

Latest validation:

  • node -e "require('./helpers/global-setup')({ use: { baseURL: 'https://liberdus.com/dev/' } })..." -> passed against dev network
  • npm test -- --list --grep '@smoke' -> 7 tests in 2 files
  • git diff --check -> passed

Previously validated during this PR:

  • node --check scripts/local-network/start.js
  • bash -n scripts/local-network/healthcheck.sh
  • docker compose -f docker-compose.local.yml config --quiet
  • actionlint via rhysd/actionlint
  • Dev-network smoke with default base URL unset before broadening smoke tags: npm run test:smoke -- --workers=1 --retries=0 --reporter=line -> 1 passed (26.2s)
  • Docker Compose startup reached healthy
  • Playwright smoke passed against JS startup: 1 passed (21.0s)
  • Manual GitHub workflow run passed on commit dbf5259
  • Earlier act --bind workflow run passed before the JS startup port: 1 passed (30.7s)

Notes

  • This PR does not change web-client-v2; wiring this into that repo can happen after this local-network PR lands.
  • The verified proxy checkout is new-nodelist-response because current proxy main stalls on the local archiver nodelist response.
  • The stack defaults to 10 nodes. A 5-node stack can start, but account creation has hung in prior testing.
  • The local-network path remains manual-only because startup is still too slow for routine CI.

@chrypnotoad chrypnotoad changed the title [codex] Add local network Docker Compose harness Add local network Docker Compose harness May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant