# 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 to `127.0.0.1:4000` internally - ✅ 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 ```bash # 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 1. ✅ `scripts/nginx-proxy-manager/configure-npmplus-domains.js` - `explorer.d-bis.org` → `http://192.168.11.140:80` 2. ✅ `docs/04-configuration/ALL_VMIDS_ENDPOINTS.md` - Updated to show port 80 with nginx routing note 3. ✅ `docs/04-configuration/NPMPLUS_CORRECT_CONFIGURATION.md` - Updated to port 80 with architecture explanation 4. ✅ `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