Files
proxmox/docs/04-configuration/INFO_DEFI_ORACLE_IO_DEPLOYMENT.md
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
2026-04-12 06:12:20 -07:00

10 KiB
Raw Blame History

info.defi-oracle.io — Chain 138 info site

Purpose: Operator-facing steps to publish the SPA in info-defi-oracle-138/ at https://info.defi-oracle.io.

App README: info-defi-oracle-138/README.md

What the site does

Positioning: Copy and agent hints describe the programme as serving regulated financial entities and settlement workflows (cross-border payments and settlements), with tokenized instruments framed as digital currencies, digital securities, digital commodities, and other Compliant Digital Assets—explicitly not retail crypto speculation. Governance narrative (public): DeFi Oracle, LLC as technical architecture; international regulated/governmental oversight; Digital Bank of International Settlements / International Commerce Courts enforcement framing for GRU policy and serious violations—see /governance. Ecosystem summary: /ecosystem. Public vs authenticated documentation for governments, regulators, FIs, law enforcement, courts, developers, public: /documentation. SolaceNet (capability/policy plane, public framing): /solacenet. See also /disclosures.

  • Overview: Chain 138 network metadata from GET /api/v1/networks when the API is reachable; cross-chain topology (WETH9 / WETH10 / trustless tabs) from GET /api/v1/bridge/routes with bundled fallback.
  • c & cW:** Live token list from GET /api/v1/tokens?chainId=138 plus live cW* registry from GET /api/v1/report/cw-registry with bundled fallback.
  • Gas-native rollout: Live gas-family registry from GET /api/v1/report/gas-registry, including canonical c* gas symbols on Chain 138, destination cW* mirrors, backing mode, quote lanes, and runtime lane readiness, with bundled fallback for static publishing.
  • Pools: Samples pools via GET /api/v1/tokens/:address/pools for compliant tokens.
  • Swap: Quote from GET /api/v1/quote (Uniswap-style estimate) and on-chain swapExactIn on canonical DODOPMMIntegration (0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895 per docs/11-references/CONTRACT_ADDRESSES_REFERENCE.md) (wallet). The SPA sets minOut from querySellBase / querySellQuote on the pool so gas estimation does not fail on PMM mismatch. For CLI / runbooks: bash scripts/verify/pmm-swap-quote-chain138.sh --token-in … --amount-in … prints suggested minAmountOut and example cast send.
  • Routing: GET /api/v1/bridge/routes and token-mapping pairs for cross-chain planning (same topology component as Overview).
  • Agents: /agents — copyable live JSON context (networks + bridge routes + API paths). Static files for tools: /llms.txt, /agent-hints.json, /robots.txt, /sitemap.xml.
  • Governance: /governance — DeFi Oracle, LLC technical architecture; international supervisory governance; DBIS / International Commerce Courts / GRU enforcement narrative (SPA).
  • Ecosystem: /ecosystem — partners, products, services, interconnections (SPA).
  • Documentation: /documentation — audiences; public hub vs secure authenticated portal; why some material is not public (SPA).
  • SolaceNet: /solacenet — capability and policy control plane; rails governance summary for public audiences (SPA).
  • Disclosures: /disclosures — audience (regulated finance vs retail crypto), Compliant Digital Assets framing, risk, naming (“compliant” / c* taxonomy), on-chain verification, indexer caveats (SPA route).

Prerequisites

  • Browser API path (recommended): The dedicated info LXC nginx proxies /token-aggregation/ to the Blockscout / token-aggregation service (see config/nginx/info-defi-oracle-io.site.conf). The SPA defaults to {site origin}/token-aggregation so the browser stays same-origin (no cross-site CORS, no mixed content). Override only if needed: VITE_TOKEN_AGGREGATION_API_BASE at build time.
  • Static host: Web root for dist/ after pnpm --filter info-defi-oracle-138 build (or use sync-info-defi-oracle-to-vmid2400.sh to VMID 2410).

Steps

  1. Set build-time env if defaults are wrong: VITE_TOKEN_AGGREGATION_API_BASE, VITE_RPC_URL_138.
  2. pnpm --filter info-defi-oracle-138 build
  3. Upload info-defi-oracle-138/dist/ to the web root.
  4. Configure the web server for SPA fallback: all routes → index.html.
  5. Add NPMplus proxy host info.defi-oracle.io → that origin; request Lets Encrypt certificate.
  6. Verify in a browser: /, /governance, /ecosystem, /documentation, /solacenet, /tokens, /pools, /swap, /routing, /agents, /disclosures over HTTPS; confirm /llms.txt and /agent-hints.json return 200 (copied from info-defi-oracle-138/public/ into dist/ at build time). Prefer pnpm run verify:info-defi-oracle-public (checks SPA paths, static files, agent-hints.json fields, and /token-aggregation/api/v1/networks).

After deploy (automated)

From any host with curl (optional jq for JSON sanity):

bash scripts/verify/check-info-defi-oracle-public.sh

Override base URL: INFO_SITE_BASE=https://staging.example.com bash scripts/verify/check-info-defi-oracle-public.sh

Stale edge: If curl -I shows an old Last-Modified or new routes 404, the edge is still serving a previous dist/ — rebuild, re-upload/sync, and re-run the script.

Placeholder HTML: If curl -s https://info.defi-oracle.io/ | head shows <title>Default Page</title> (or similar generic hosting default), the proxy is not pointing at the Vite dist/ output — fix NPMplus upstream / tunnel target, then re-run check-info-defi-oracle-public.sh.

Static agent files: llms.txt, agent-hints.json, robots.txt, and sitemap.xml must be deployed at the site root (Vite copies public/ into dist/). If your sync only uploaded older assets, run a fresh pnpm --filter info-defi-oracle-138 build first.

Cloudflare DNS (.env API creds): set-info-defi-oracle-dns-to-vmid2400-tunnel.sh defaults to INFO_DEFI_ORACLE_EDGE_MODE=auto. If the tunnel ID is not in your account (Tunnel not found from update-vmid2400-tunnel-config.sh), publish an A record to your NPM WAN instead:

INFO_DEFI_ORACLE_EDGE_MODE=public_ip bash scripts/cloudflare/set-info-defi-oracle-dns-to-vmid2400-tunnel.sh

Set INFO_DEFI_ORACLE_PUBLIC_IP or PUBLIC_IP if the NPM edge is not the default 76.53.10.36.

HTTPS “Default Page” on NPM while HTTP works: Request Lets Encrypt certs for info.defi-oracle.io / www.info.defi-oracle.io (scripts/request-npmplus-certificates.sh with CERT_DOMAINS_FILTER='info\.defi-oracle' or ^79\| for a single host id). Without a certificate, NPMplus may serve its default SSL vhost.

Cloudflare cache vs origin: If / and /llms.txt pass but /robots.txt still returns NPM “Default Page” through the orange-cloud proxy, purge cache for static URLs:

bash scripts/cloudflare/purge-info-defi-oracle-cache.sh

Tunnel ingress (when tunnel exists in account): scripts/update-vmid2400-tunnel-config.sh routes info / www.info to http://IP_INFO_DEFI_ORACLE_WEB:80 (not 127.0.0.1:80). Override with INFO_DEFI_ORACLE_TUNNEL_UPSTREAM if needed.

VMID 2400 is ThirdWeb RPC, not a static site host. Use a small nginx-only LXC (default VMID 2410, 192.168.11.218 — see config/ip-addresses.conf).

  1. Provision once (Debian + nginx + vhost; on r630-01 by default, override PROXMOX_HOST for another node):
bash scripts/deployment/provision-info-defi-oracle-web-lxc.sh
  1. Build and sync the SPA into that CT (script name is historical; default target is 2410):
bash scripts/deployment/sync-info-defi-oracle-to-vmid2400.sh

Override: INFO_DEFI_ORACLE_VMID, PROXMOX_HOST, IP_INFO_DEFI_ORACLE_WEB as needed.

  1. Sync the primary public NPMplus edge so info.defi-oracle.io and www.info.defi-oracle.io proxy to IP_INFO_DEFI_ORACLE_WEB:80 (defaults updated in update-npmplus-proxy-hosts-api.sh):
bash scripts/nginx-proxy-manager/update-npmplus-proxy-hosts-api.sh
  1. Request or renew the NPMplus certificate for the two hostnames:
CERT_DOMAINS_FILTER='(^|,)www?\\.info\\.defi-oracle\\.io$|info\\.defi-oracle\\.io|www\\.info\\.defi-oracle\\.io' \
  bash scripts/request-npmplus-certificates.sh
  1. Publish DNS. The helper prefers a Cloudflare tunnel when present, otherwise the public NPMplus edge IP:
bash scripts/cloudflare/set-info-defi-oracle-dns-to-vmid2400-tunnel.sh
  1. Optional: tunnel ingress for RPC lives on VMID 2400 — info traffic normally flows NPMplus → dedicated web LXC; only use scripts/update-vmid2400-tunnel-config.sh if you intentionally route info via the same tunnel stack as RPC.

  2. Verify public resolution, HTTPS, SPA, agent static files, and same-origin token-aggregation JSON:

getent ahosts info.defi-oracle.io
curl -I https://info.defi-oracle.io
bash scripts/verify/check-info-defi-oracle-public.sh
# Optional: scored Playwright pass (Chromium): pnpm exec playwright install chromium && pnpm run audit:info-defi-oracle-site

CI and scheduling

  • Build (PR/push): .github/workflows/info-defi-oracle-138.yml runs pnpm --filter info-defi-oracle-138 build when the package or lockfile changes.
  • Public smoke: .github/workflows/verify-info-defi-oracle-public.yml runs check-info-defi-oracle-public.sh on workflow_dispatch (optional input info_site_base) and weekly (Mondays UTC). Actions variable INFO_SITE_BASE is used when the input is empty; otherwise the script defaults to https://info.defi-oracle.io.