#!/usr/bin/env bash # Print Split DNS records for Chain 138 RPC (internal LAN resolution to NPMplus). # Use these in UniFi DNS or your LAN resolver so internal clients reach ${IP_NPMPLUS:-${IP_NPMPLUS:-192.168.11.167}} # instead of 76.53.10.36 (avoids NAT hairpin). Public DNS stays 76.53.10.36. # Run from repo root; NPM_HOST from .env if set. set -euo pipefail # Load IP configuration SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" cd "$PROJECT_ROOT" if [ -f .env ]; then set +u # shellcheck source=/dev/null source .env 2>/dev/null || true set -u fi NPM_HOST="${NPM_HOST:-${IP_NPMPLUS:-192.168.11.167}}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Split DNS for Chain 138 RPC (internal LAN → NPMplus)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "Add these A records in your internal DNS (e.g. UniFi) so LAN clients" echo "resolve RPC hostnames to $NPM_HOST (NPMplus) instead of the public IP." echo "" echo " Hostname → $NPM_HOST" echo " ─────────────────────────────────────────────" echo " rpc-http-pub.d-bis.org → $NPM_HOST" echo " rpc-ws-pub.d-bis.org → $NPM_HOST" echo " rpc.d-bis.org → $NPM_HOST" echo " rpc2.d-bis.org → $NPM_HOST" echo " ws.rpc.d-bis.org → $NPM_HOST" echo " ws.rpc2.d-bis.org → $NPM_HOST" echo " rpc.defi-oracle.io → $NPM_HOST" echo " wss.defi-oracle.io → $NPM_HOST" echo "" echo "Result: LAN traffic stays on LAN; internet clients still use public IP." echo "See: docs/04-configuration/RPC_CHAIN138_VERIFICATION.md" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"