2026-03-26 18:56:57 -07:00
# Proxmox workspace — agent instructions
Single canonical copy for Cursor/Codex. (If your editor also loads `.cursor/rules` , treat those as overlays.)
## Scope
Orchestration for Proxmox VE, Chain 138 (`smom-dbis-138/` ), explorers, NPMplus, and deployment runbooks.
## Quick pointers
| Need | Location |
|------|-----------|
| Doc index | `docs/MASTER_INDEX.md` |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Chain 138 info site (`info.defi-oracle.io` ) | `info-defi-oracle-138/` — `pnpm --filter info-defi-oracle-138 build` ; deploy `dist/` ; runbook `docs/04-configuration/INFO_DEFI_ORACLE_IO_DEPLOYMENT.md` |
2026-03-26 18:56:57 -07:00
| cXAUC/cXAUT unit | 1 full token = 1 troy oz Au — `docs/11-references/EXPLORER_TOKEN_LIST_CROSSCHECK.md` (section 5.1) |
2026-04-05 01:18:42 -07:00
| GRU / UTRNF token naming (`c*` vs collateral prefix) | `docs/04-configuration/naming-conventions/README.md` , `docs/04-configuration/naming-conventions/02_DBIS_NAMESPACE_AND_UTRNF_MAPPING.md` |
2026-03-26 18:56:57 -07:00
| PMM mesh 6s tick | `smom-dbis-138/scripts/reserve/pmm-mesh-6s-automation.sh` — `docs/integration/ORACLE_AND_KEEPER_CHAIN138.md` (PMM mesh automation) |
2026-04-05 01:18:42 -07:00
| Mainnet cWUSD\* peg, TRUU PMM, bot readiness | `docs/03-deployment/MAINNET_PMM_TRUU_CWUSD_PEG_AND_BOT_RUNBOOK.md` (§11 live inventory) — `scripts/verify/check-mainnet-pmm-peg-bot-readiness.sh` , `scripts/deployment/deploy-mainnet-pmm-cw-truu-pool.sh` , `scripts/deployment/add-mainnet-truu-pmm-topup.sh` , `scripts/deployment/compute-mainnet-truu-liquidity-amounts.sh` , `scripts/deployment/compute-mainnet-truu-pmm-seed-amounts.sh` ; `cross-chain-pmm-lps/config/deployment-status.json` `pmmPoolsVolatile` ; `docs/11-references/CONTRACT_ADDRESSES_REFERENCE.md` (Mainnet TRUU PMM); `check-full-deployment-status.sh` when `ETHEREUM_MAINNET_RPC` + `DODO_PMM_INTEGRATION_MAINNET` are set |
2026-03-26 18:56:57 -07:00
| VMID / IP / FQDN | `docs/04-configuration/ALL_VMIDS_ENDPOINTS.md` |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Proxmox Mail Proxy (LAN SMTP) | VMID **100 ** `192.168.11.32` (`proxmox-mail-gateway` ) — submission **587 ** / **465 ** ; see Mail Proxy note in `ALL_VMIDS_ENDPOINTS.md` |
2026-04-05 01:18:42 -07:00
| Spare R630 storage + optional tune-up | `scripts/proxmox/ensure-r630-spare-node-storage.sh` , `scripts/proxmox/provision-r630-03-six-ssd-thinpools.sh` , `scripts/proxmox/pve-spare-host-optional-tuneup.sh` · load balance / migrate: `docs/04-configuration/PROXMOX_LOAD_BALANCING_RUNBOOK.md` |
2026-03-26 18:56:57 -07:00
| Ops template + JSON | `docs/03-deployment/PROXMOX_VE_OPERATIONAL_DEPLOYMENT_TEMPLATE.md` , `config/proxmox-operational-template.json` |
| Live vs template (read-only SSH) | `bash scripts/verify/audit-proxmox-operational-template.sh` |
2026-04-05 01:18:42 -07:00
| Config validation | `bash scripts/validation/validate-config-files.sh` (optional: `python3 -m pip install check-jsonschema` for `validate-dbis-institutional-schemas.sh` , `validate-naming-convention-registry-examples.sh` , `validate-jvmtm-regulatory-closure-schemas.sh` , `validate-reserve-provenance-package.sh` ; includes explorer Chain 138 inventory vs `config/smart-contracts-master.json` ) |
| Chain 138 contract addresses (JSON + bytecode) | `config/smart-contracts-master.json` — `bash scripts/verify/check-contracts-on-chain-138.sh` (expect **75/75 ** when Core RPC reachable; jq uses JSON when file present) |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| OMNL + Core + Chain 138 + RTGS + Smart Vaults | `docs/03-deployment/OMNL_DBIS_CORE_CHAIN138_SMART_VAULT_RTGS_RUNBOOK.md` ; identifiers (UETR vs DLT-primary): `docs/03-deployment/OJK_BI_AUDIT_JVMTM_REMEDIATION_AND_UETR_POLICY.md` ; JVMTM Tables B/C/D closure matrix: `config/jvmtm-regulatory-closure/INAAUDJVMTM_2025_AUDIT_CLOSURE_MATRIX.md` ; **dual-anchor attestation: ** `scripts/omnl/omnl-chain138-attestation-tx.sh` (138 + optional mainnet via `ETHEREUM_MAINNET_RPC` ); E2E zip: `AUDIT_PROOF.json` `chainAttestationMainnet` ; machine-readable: `config/dbis-institutional/` |
| Blockscout address labels from registry | `bash scripts/verify/sync-blockscout-address-labels-from-registry.sh` (plan); `--apply` with `BLOCKSCOUT_*` env when explorer API confirmed |
| ISO-20022 on-chain methodology + intake gateway | `docs/04-configuration/SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY.md` , `ISO20022_INTAKE_GATEWAY_CONTRACT_MULTI_NETWORK.md` ; Rail: `docs/dbis-rail/ISO_GATEWAY_AND_RELAYER_SPEC.md` |
2026-03-28 17:30:07 -07:00
| FQDN / NPM E2E verifier | `bash scripts/verify/verify-end-to-end-routing.sh --profile=public` — inventory: `docs/04-configuration/E2E_ENDPOINTS_LIST.md` . Gitea Actions URLs (no API): `bash scripts/verify/print-gitea-actions-urls.sh` |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| RPC FQDN batch (`eth_chainId` + WSS) | `bash scripts/verify/check-rpc-fqdns-e2e.sh` — after DNS + `update-npmplus-proxy-hosts-api.sh` ; includes `rpc-core.d-bis.org` |
2026-03-27 22:12:46 -07:00
| Submodule trees clean (CI / post-merge) | `bash scripts/verify/submodules-clean.sh` |
| Submodule + explorer remotes | `docs/00-meta/SUBMODULE_HYGIENE.md` |
2026-03-27 12:29:40 -07:00
| smom-dbis-138 `.env` in bash scripts | Prefer `source smom-dbis-138/scripts/lib/deployment/dotenv.sh` + `load_deployment_env --repo-root "$PROJECT_ROOT"` (trims RPC URL line endings). From an interactive shell: `source smom-dbis-138/scripts/load-env.sh` . Proxmox root scripts: `source scripts/lib/load-project-env.sh` (also trims common RPC vars). |
2026-03-29 13:41:02 -07:00
| Sankofa portal → CT 7801 (build + restart) | `./scripts/deployment/sync-sankofa-portal-7801.sh` (`--dry-run` first); default `NEXTAUTH_URL=https://portal.sankofa.nexus` via `sankofa-portal-ensure-nextauth-on-ct.sh` |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Portal Keycloak OIDC secret on CT 7801 | After client exists: `./scripts/deployment/sankofa-portal-merge-keycloak-env-from-repo.sh` (needs `KEYCLOAK_CLIENT_SECRET` in repo `.env` ; base64-safe over SSH) |
2026-03-29 13:41:02 -07:00
| Sankofa corporate web → CT 7806 | Provision: `./scripts/deployment/provision-sankofa-public-web-lxc-7806.sh` . Sync: `./scripts/deployment/sync-sankofa-public-web-to-ct.sh` . systemd: `config/systemd/sankofa-public-web.service` . Set `IP_SANKOFA_PUBLIC_WEB` in `.env` , then `scripts/nginx-proxy-manager/update-npmplus-proxy-hosts-api.sh` |
2026-03-27 00:30:28 -07:00
| CCIP relay (r630-01 host) | Unit: `config/systemd/ccip-relay.service` → `/etc/systemd/system/ccip-relay.service` ; `systemctl enable --now ccip-relay` |
2026-04-05 01:18:42 -07:00
| XDC Zero + Chain 138 (parallel to CCIP) | `bash scripts/xdc-zero/run-xdc-zero-138-operator-sequence.sh` · `docs/03-deployment/CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md` · `CHAIN138_XDC_ZERO_DEPLOYMENT_TROUBLESHOOTING.md` · `config/xdc-zero/` · `scripts/xdc-zero/` · systemd `node dist/server.js` template — **XDC mainnet RPC: ** `https://rpc.xinfin.network` (chain id 50; more endpoints: [chainid.network/chain/50 ](https://chainid.network/chain/50/ )); **Chain 138 side: ** Core `http://192.168.11.211:8545` is operator-only, relayer/services use `https://rpc-http-pub.d-bis.org` |
| OP Stack Standard Rollup (Ethereum mainnet, Superchain) | `docs/03-deployment/OP_STACK_STANDARD_ROLLUP_SUPERCHAIN_RUNBOOK.md` · optional L2↔Besu notes `docs/03-deployment/OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md` · `config/op-stack-superchain/` · `scripts/op-stack/` (e.g. `fetch-standard-mainnet-toml.sh` , checklist scripts) · `config/systemd/op-stack-*.example.service` — **distinct L2 chain ID from Besu 138 ** ; follow [Optimism superchain-registry ](https://github.com/ethereum-optimism/superchain-registry ) for listing |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Wormhole protocol (LLM / MCP) vs Chain 138 facts | Wormhole NTT/Connect/VAAs/etc.: `docs/04-configuration/WORMHOLE_AI_RESOURCES_LLM_PLAYBOOK.md` , mirror `scripts/doc/sync-wormhole-ai-resources.sh` , MCP `mcp-wormhole-docs/` + `docs/04-configuration/MCP_SETUP.md` . **Chain 138 addresses, PMM, CCIP: ** repo `docs/11-references/` + `docs/07-ccip/` — not Wormhole bundles. Cursor overlay: `.cursor/rules/wormhole-ai-resources.mdc` . |
2026-03-27 00:30:28 -07:00
| TsunamiSwap VM 5010 check | `./scripts/deployment/tsunamiswap-vm-5010-provision.sh` (inventory only until VM exists) |
2026-03-27 14:05:37 -07:00
| The Order portal (`https://the-order.sankofa.nexus` ) | OSJ management UI (secure auth); source repo **the_order ** at `~/projects/the_order` . NPM upstream defaults to **order-haproxy ** CT **10210 ** (`IP_ORDER_HAPROXY:80` ); use `THE_ORDER_UPSTREAM_*` to point at the Sankofa portal if 10210 is down. Provision HAProxy: `scripts/deployment/provision-order-haproxy-10210.sh` . * * `www.the-order.sankofa.nexus` ** → **301 ** apex (same as www.sankofa / www.phoenix). |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Portal login + Keycloak systemd + `.env` (prints password once) | `./scripts/deployment/enable-sankofa-portal-login-7801.sh` (`--dry-run` first); preserves `KEYCLOAK_*` from repo `.env` and runs merge script when `KEYCLOAK_CLIENT_SECRET` is set |
| Keycloak redirect URIs (portal + admin) | `./scripts/deployment/keycloak-sankofa-ensure-client-redirects-via-proxmox-pct.sh` (or `keycloak-sankofa-ensure-client-redirects.sh` for LAN URL) — needs `KEYCLOAK_ADMIN_PASSWORD` in `.env` |
2026-03-29 13:41:02 -07:00
| NPM TLS for hosts missing certs | `./scripts/request-npmplus-certificates.sh` — optional `CERT_DOMAINS_FILTER='portal\\.sankofa|admin\\.sankofa'` |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| Token-aggregation API (Chain 138) | `pnpm run verify:token-aggregation-api` — tokens, pools, quote, `bridge/routes` , networks. Deploy: `scripts/deploy-token-aggregation-for-publication.sh` . After edge deploy: `SKIP_BRIDGE_ROUTES=0 bash scripts/verify/check-public-report-api.sh https://explorer.d-bis.org` . |
2026-04-05 01:18:42 -07:00
| **Chain 138 Open Snap ** (MetaMask, open Snap permissions only; stable MetaMask requires MetaMask install allowlist for npm Snaps) | Source repo: [Defi-Oracle-Tooling/chain138-snap-minimal ](https://github.com/Defi-Oracle-Tooling/chain138-snap-minimal ). Vendored in this workspace: `metamask-integration/chain138-snap-minimal/` . Snap ID `npm:chain138-open-snap` ; * * `npm run verify` ** = `npm audit --omit=dev` + build. **Publish: ** token in `chain138-snap/.env` or `npm login` , then `./scripts/deployment/publish-chain138-open-snap.sh` . **Full-feature Snap ** (API quotes, allowlist): `metamask-integration/chain138-snap/` . Explorer `/wallet` install works on stable MetaMask only after allowlisting; use Flask or local serve for dev. |
2026-03-26 18:56:57 -07:00
| Completable (no LAN) | `./scripts/run-completable-tasks-from-anywhere.sh` |
| Operator (LAN + secrets) | `./scripts/run-all-operator-tasks-from-lan.sh` (use `--skip-backup` if `NPM_PASSWORD` unset) |
2026-03-27 12:29:40 -07:00
| Cloudflare bulk DNS → `PUBLIC_IP` | `./scripts/update-all-dns-to-public-ip.sh` — use * * `--dry-run` ** and * * `--zone-only=sankofa.nexus` ** (or `d-bis.org` / `mim4u.org` / `defi-oracle.io` ) to limit scope; see script header. Prefer scoped * * `CLOUDFLARE_API_TOKEN` ** (see `.env.master.example` ). |
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
| IRU marketplace surfaces + Turnstile (Captcha) | [docs/03-deployment/SANKOFA_MARKETPLACE_SURFACES.md ](docs/03-deployment/SANKOFA_MARKETPLACE_SURFACES.md ) — **native ** (VMs, IPs, app hosting, etc.) vs **partner ** (e.g. SolaceNet IRU) methodology; Turnstile **secret ** on API (`CLOUDFLARE_TURNSTILE_SECRET_KEY` or aliases), **site key ** on frontend build (`VITE_*` ); not the same as Cloudflare DNS keys. [docs/04-configuration/MASTER_SECRETS.md ](docs/04-configuration/MASTER_SECRETS.md ) (Cloudflare table). |
2026-03-26 18:56:57 -07:00
2026-03-27 22:12:46 -07:00
## Git submodules
Most submodules are **pinned commits ** ; `git submodule update --init --recursive` often leaves **detached HEAD ** — that is normal. To **change ** a submodule: check out a branch inside it, commit, **push the submodule first ** , then commit and push the **parent ** submodule pointer. Do not embed credentials in `git remote` URLs; use SSH or a credential helper. Explorer Gitea vs GitHub and token cleanup: `docs/00-meta/SUBMODULE_HYGIENE.md` .
2026-03-26 18:56:57 -07:00
## Rules of engagement
- Review scripts before running; prefer `--dry-run` where supported.
- Do not run the full operator flow when everything is healthy unless the user explicitly wants broad fixes (NPM/nginx/RPC churn).
- Chain 138 deploy RPC: `http://192.168.11.211:8545` (Core). Read-only / non-deploy checks may use public RPC per project rules.
Full detail: see embedded workspace rules and `docs/00-meta/OPERATOR_READY_CHECKLIST.md` .