Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
3.2 KiB
3.2 KiB
Blockscout Routing Configuration - Correct Setup
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2026-01-18
Status: ✅ CONFIGURATION CORRECTED
Last Updated: 2026-01-18
Correct Configuration
Current Setup
| Domain | Target IP | Port | VMID | Service | Purpose |
|---|---|---|---|---|---|
explorer.d-bis.org |
192.168.11.140 | 80 | 5000 | blockscout-1 | Blockscout Explorer Web UI |
Architecture:
Internet → NPMplus → 192.168.11.140:80 (nginx) → serves web UI
└─ proxies /api/* → 127.0.0.1:4000 (Blockscout API)
Why Port 80 (Not Port 4000)?
Port 4000 is API-Only
Port 4000 (Blockscout API):
- ✅ Serves
/api/*endpoints (returns HTTP 200) - ❌ Does NOT serve root path
/(returns HTTP 404) - ✅ Used internally by nginx for API proxying
Port 80 (nginx):
- ✅ Serves full Blockscout web UI at
/(returns HTTP 200) - ✅ Proxies
/api/*requests to127.0.0.1:4000internally - ✅ Provides complete Blockscout functionality
Correct Routing
For Web UI: Route explorer.d-bis.org → 192.168.11.140:80
- Users access the full Blockscout web interface
- nginx automatically handles API proxying to port 4000
Direct API Access (if needed): http://192.168.11.140:4000/api/v2/stats
- Only for internal/administrative use
- Not for public domain routing
Issue Resolution
Problem Encountered (2026-01-18)
Symptom: https://explorer.d-bis.org/ returned "Page not found" (HTTP 404)
Root Cause:
- NPMplus was routing to port 4000 (API-only endpoint)
- Port 4000 doesn't serve the web UI (only
/api/*paths)
Solution:
- Reverted NPMplus routing to port 80 (nginx)
- nginx serves web UI and proxies API requests internally
Verification
Test Commands
# Web UI (should return HTTP 200)
curl -I https://explorer.d-bis.org/
# API endpoint (should return HTTP 200)
curl -I https://explorer.d-bis.org/api/v2/stats
# Direct API access (internal use)
curl -I http://192.168.11.140:4000/api/v2/stats
# Direct web UI access (should return HTTP 200)
curl -I http://192.168.11.140:80/
Configuration Files
Updated Files
-
✅
scripts/nginx-proxy-manager/configure-npmplus-domains.jsexplorer.d-bis.org→http://192.168.11.140:80
-
✅
docs/04-configuration/ALL_VMIDS_ENDPOINTS.md- Updated to show port 80 with nginx routing note
-
✅
docs/04-configuration/NPMPLUS_CORRECT_CONFIGURATION.md- Updated to port 80 with architecture explanation
-
✅
docs/04-configuration/RPC_ENDPOINTS_MASTER.md- Updated to port 80 with routing explanation
Summary
Correct Configuration:
- Public Domain:
explorer.d-bis.org→192.168.11.140:80(nginx) - Web UI: Served by nginx on port 80
- API: Proxied by nginx to Blockscout on port 4000
Why This Works:
- Port 80 serves the complete Blockscout web interface
- nginx handles API routing internally (transparent to users)
- Users get full functionality without needing direct API access
Last Updated: 2026-01-18
Status: ✅ Configuration Verified and Documented