Files
proxmox/docs/04-configuration/cloudflare/SFVALLEY2_TUNNEL_MANUAL_RUNBOOK.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

5.5 KiB
Raw Blame History

SFValley2 tunnel — manual completion runbook

Use this when completing the sfvalley02 tunnel for RPC Core-2 (Nathan) after the container 2102 and NPMplus are in place.

Prerequisites: VMID 2102 running at 192.168.11.212 with Besu RPC on 8545; third NPMplus at 192.168.11.169 (VMID 10235) — Nathan's RPC, Alltra, and HYBX use this instance (76.53.10.38).


1. Cloudflare Zero Trust — add published application route

  1. Open Zero TrustNetworksTunnelssfvalley02.
  2. Open the Published application routes tab (same view as your screenshot).
  3. Click + Add a published application route.
  4. Configure:
    • Published application route (hostname): rpc-core-2.d-bis.org
    • Path: *
    • Service: https://192.168.11.169:443 (third NPMplus — same instance as Alltra/HYBX, not .167)
    • Origin: Use No TLS Verify so cloudflared can talk to NPMplus on 192.168.11.169.
  5. Save. You should see a 9th row with rpc-core-2.d-bis.org, Path *, Service https://192.168.11.169:443.

Note: If rpc-core-2.d-bis.org is not in “connected domains”, use Manage connected domains on that page to add the domain for the tunnel.


2. NPMplus (third instance) — add proxy host for rpc-core-2

Nathan's RPC uses the third NPMplus (192.168.11.169, VMID 10235 — same as Alltra/HYBX). Either use the script via SSH to Proxmox (uses pct to get password, or NPM_PASSWORD from .env):

# From repo root. SSHs to r630-01, runs update on Proxmox; set NPM_PASSWORD (and NPM_EMAIL if needed) in .env for third NPMplus (192.168.11.169)
./scripts/nginx-proxy-manager/run-update-npmplus-alltra-hybx-via-ssh.sh

Or run the update script directly (from a host that can reach 192.168.11.169):

NPM_URL=https://192.168.11.169:81 NPM_PASSWORD=xxx ./scripts/nginx-proxy-manager/update-npmplus-alltra-hybx-proxy-hosts.sh

Or in the third NPMplus UI (https://192.168.11.169:81):

  1. HostsProxy HostsAdd Proxy Host.
  2. Details:
    • Domain Names: rpc-core-2.d-bis.org
    • Scheme: HTTP
    • Forward Hostname / IP: 192.168.11.212
    • Forward Port: 8545
  3. Advanced: Enable WebSocket Support (for future WS use).
  4. Save. Optionally request SSL certificate for the domain.

3. DNS

In Cloudflare (or wherever d-bis.org is hosted):

  • Type: CNAME
  • Name: rpc-core-2 (or full rpc-core-2.d-bis.org depending on UI)
  • Target: <sfvalley02-tunnel-id>.cfargotunnel.com
    (Get the tunnel ID from Zero Trust → Networks → Tunnels → sfvalley02 → Overview.)

4. Verify

  • From outside (or via tunnel): curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' https://rpc-core-2.d-bis.org
    Expect JSON with "result":"0x8a" (138 in hex).
    If you get 405 Not Allowed: NPMplus “Block Exploits” is blocking POST to /. Edit the rpc-core-2.d-bis.org proxy host in the third NPMplus (https://192.168.11.169:81) → Advanced → turn off “Block Exploits” and save. Or run ./scripts/nginx-proxy-manager/update-npmplus-alltra-hybx-proxy-hosts.sh (it sets block_exploits: false for all RPC hosts on that instance).
  • Or in a browser: open https://rpc-core-2.d-bis.org and confirm its not 502 (NPMplus and Besu are reachable).

Summary

Step Where Action
1 Cloudflare Zero Trust sfvalley02 → Published application routes → Add route: rpc-core-2.d-bis.org, Path *, Service https://192.168.11.169:443 (third NPMplus), No TLS Verify
2 NPMplus #3 (192.168.11.169) Add Proxy Host: rpc-core-2.d-bis.orghttp://192.168.11.212:8545, WebSocket on
3 DNS CNAME rpc-core-2.d-bis.org<sfvalley02-tunnel-id>.cfargotunnel.com

See also: RPC_CORE_2_NATHAN_SFVALLEY2_TUNNEL.md.


5. All Alltra/HYBX hostnames (tunnel + NPMplus)

Yes — all Alltra and HYBX services that should be public belong on the same tunnel (sfvalley02) and same NPMplus (third instance, 192.168.11.169). The script update-npmplus-alltra-hybx-proxy-hosts.sh (and run-update-npmplus-alltra-hybx-via-ssh.sh) manages proxy hosts for all of these.

Hostname Backend Port In tunnel?
rpc-core-2.d-bis.org 192.168.11.212 8545 Yes (add route if missing)
rpc-alltra.d-bis.org, rpc-alltra-2, rpc-alltra-3 .172, .173, .174 8545 Yes
rpc-hybx.d-bis.org, rpc-hybx-2, rpc-hybx-3 .246, .247, .248 8545 Yes
cacti-alltra.d-bis.org, cacti-hybx.d-bis.org .177, .251 80 Yes
firefly-alltra-1, firefly-alltra-2, firefly-hybx-1, firefly-hybx-2 .175, .176, .249, .250 80 Add route for each
fabric-alltra, indy-alltra, fabric-hybx, indy-hybx .178, .179, .252, .253 80 Add route for each

Cloudflare: For each hostname above that you want public, in sfvalley02Published application routes+ Add a published application route: set Published application route = hostname, Path = *, Service = https://192.168.11.169:443, No TLS Verify. Then add a DNS CNAME for that hostname → <sfvalley02-tunnel-id>.cfargotunnel.com.

NPMplus: Run ./scripts/nginx-proxy-manager/run-update-npmplus-alltra-hybx-via-ssh.sh from repo root; it adds or updates all proxy hosts (RPC, Cacti, Firefly, Fabric, Indy). Adjust Firefly/Fabric/Indy ports in the third NPMplus UI if your backends use something other than 80.