feat: explorer API, wallet, CCIP scripts, and config refresh
- Backend REST/gateway/track routes, analytics, Blockscout proxy paths. - Frontend wallet and liquidity surfaces; MetaMask token list alignment. - Deployment docs, verification scripts, address inventory updates. Check: go build ./... under backend/ (pass). Made-with: Cursor
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Deploy custom explorer frontend to VMID 5000
|
||||
# This script copies the frontend to /var/www/html/ and updates nginx
|
||||
# Deploy legacy static explorer frontend to VMID 5000
|
||||
# This copies the old SPA assets into /var/www/html/.
|
||||
# For the current Next.js frontend, use ./scripts/deploy-next-frontend-to-vmid5000.sh
|
||||
#
|
||||
# Optional: for air-gapped Mermaid on chain138-command-center.html, run:
|
||||
# bash explorer-monorepo/scripts/vendor-mermaid-for-command-center.sh
|
||||
# then switch the script src in chain138-command-center.html to /thirdparty/mermaid.min.js
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -15,7 +20,7 @@ FRONTEND_PUBLIC="$(dirname "$FRONTEND_SOURCE")"
|
||||
PROXMOX_R630_02="${PROXMOX_HOST_R630_02:-192.168.11.12}"
|
||||
|
||||
echo "=========================================="
|
||||
echo "Deploying Custom Explorer Frontend"
|
||||
echo "Deploying Legacy Static Explorer Frontend"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
@@ -80,7 +85,7 @@ echo ""
|
||||
|
||||
# Step 4b: Deploy favicon and apple-touch-icon
|
||||
echo "=== Step 4b: Deploying icons ==="
|
||||
for ASSET in explorer-spa.js apple-touch-icon.png favicon.ico; do
|
||||
for ASSET in explorer-spa.js chain138-command-center.html apple-touch-icon.png favicon.ico; do
|
||||
SRC="${FRONTEND_PUBLIC}/${ASSET}"
|
||||
if [ ! -f "$SRC" ]; then
|
||||
echo "⚠️ Skip $ASSET (not found)"
|
||||
@@ -100,6 +105,54 @@ for ASSET in explorer-spa.js apple-touch-icon.png favicon.ico; do
|
||||
echo "✅ $ASSET deployed"
|
||||
fi
|
||||
done
|
||||
|
||||
# Optional local Mermaid (~3 MB) for command center when jsDelivr/CSP is blocked
|
||||
MERMAID_SRC="${FRONTEND_PUBLIC}/thirdparty/mermaid.min.js"
|
||||
if [ -f "$MERMAID_SRC" ]; then
|
||||
echo "=== Step 4b2: Deploying thirdparty/mermaid.min.js (local vendored) ==="
|
||||
if [ "$DEPLOY_METHOD" = "direct" ]; then
|
||||
mkdir -p /var/www/html/thirdparty
|
||||
cp "$MERMAID_SRC" /var/www/html/thirdparty/mermaid.min.js
|
||||
chown www-data:www-data /var/www/html/thirdparty/mermaid.min.js 2>/dev/null || true
|
||||
echo "✅ thirdparty/mermaid.min.js deployed"
|
||||
elif [ "$DEPLOY_METHOD" = "remote" ]; then
|
||||
scp -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$MERMAID_SRC" root@${PROXMOX_R630_02}:/tmp/mermaid.min.js
|
||||
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${PROXMOX_R630_02} "pct exec $VMID -- mkdir -p /var/www/html/thirdparty && pct push $VMID /tmp/mermaid.min.js /var/www/html/thirdparty/mermaid.min.js --perms 0644 && pct exec $VMID -- chown www-data:www-data /var/www/html/thirdparty/mermaid.min.js"
|
||||
echo "✅ thirdparty/mermaid.min.js deployed via $PROXMOX_R630_02"
|
||||
else
|
||||
$EXEC_PREFIX mkdir -p /var/www/html/thirdparty
|
||||
pct push $VMID "$MERMAID_SRC" /var/www/html/thirdparty/mermaid.min.js
|
||||
$EXEC_PREFIX chown www-data:www-data /var/www/html/thirdparty/mermaid.min.js 2>/dev/null || true
|
||||
echo "✅ thirdparty/mermaid.min.js deployed"
|
||||
fi
|
||||
echo ""
|
||||
else
|
||||
echo "ℹ️ Skip thirdparty/mermaid.min.js (run scripts/vendor-mermaid-for-command-center.sh if CSP/offline needs local Mermaid)"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
echo "=== Step 4c: Deploying /config JSON (topology, verify example) ==="
|
||||
run_in_vm "mkdir -p /var/www/html/config"
|
||||
for CFG in topology-graph.json mission-control-verify.example.json; do
|
||||
CFG_SRC="${FRONTEND_PUBLIC}/config/${CFG}"
|
||||
if [ ! -f "$CFG_SRC" ]; then
|
||||
echo "⚠️ Skip config/$CFG (not found)"
|
||||
continue
|
||||
fi
|
||||
if [ "$DEPLOY_METHOD" = "direct" ]; then
|
||||
cp "$CFG_SRC" "/var/www/html/config/$CFG"
|
||||
chown www-data:www-data "/var/www/html/config/$CFG" 2>/dev/null || true
|
||||
echo "✅ config/$CFG deployed"
|
||||
elif [ "$DEPLOY_METHOD" = "remote" ]; then
|
||||
scp -o ConnectTimeout=10 -o StrictHostKeyChecking=no "$CFG_SRC" root@${PROXMOX_R630_02}:/tmp/explorer-cfg-"$CFG"
|
||||
ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@${PROXMOX_R630_02} "pct push $VMID /tmp/explorer-cfg-$CFG /var/www/html/config/$CFG --perms 0644 && pct exec $VMID -- chown www-data:www-data /var/www/html/config/$CFG"
|
||||
echo "✅ config/$CFG deployed via $PROXMOX_R630_02"
|
||||
else
|
||||
pct push $VMID "$CFG_SRC" "/var/www/html/config/$CFG"
|
||||
$EXEC_PREFIX chown www-data:www-data "/var/www/html/config/$CFG" 2>/dev/null || true
|
||||
echo "✅ config/$CFG deployed"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Step 5 (remote): Apply nginx config so /favicon.ico and /apple-touch-icon.png are served
|
||||
@@ -211,6 +264,10 @@ echo "=========================================="
|
||||
echo "Deployment Complete!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Note: this is the legacy static SPA deployment path."
|
||||
echo "For the current Next.js frontend, use:"
|
||||
echo " ./scripts/deploy-next-frontend-to-vmid5000.sh"
|
||||
echo ""
|
||||
echo "Frontend should now be accessible at:"
|
||||
echo " - http://$VM_IP/"
|
||||
echo " - https://explorer.d-bis.org/"
|
||||
@@ -219,4 +276,3 @@ echo "To view logs:"
|
||||
echo " tail -f /var/log/nginx/blockscout-access.log"
|
||||
echo " tail -f /var/log/nginx/blockscout-error.log"
|
||||
echo ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user