Files
explorer-monorepo/docs/DEPLOYMENT.md
defiQUG bdae5a9f6e 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
2026-04-07 23:22:12 -07:00

3.8 KiB

Deployment Guide

Production Deployment

Prerequisites

  • SSH access to production server (192.168.11.140)
  • Password for root user
  • sshpass installed (or use SSH keys)

Quick Deploy

For the current frontend, use the Next standalone deploy path:

# From explorer-monorepo root
./scripts/deploy-next-frontend-to-vmid5000.sh

This builds frontend/, uploads the standalone bundle, installs the solacescanscout-frontend.service unit, and starts the frontend on 127.0.0.1:3000 inside VMID 5000.

Nginx should keep the existing explorer API routes and proxy / plus /_next/ to the frontend service. Use nginx-next-frontend-proxy.conf inside the explorer server block after /api, /api/config/*, /explorer-api/*, /token-aggregation/api/v1/*, /snap/, and /health.

Legacy Static Deploy

# From explorer-monorepo root
./scripts/deploy.sh

Manual Deploy

# Canonical Next deployment:
./scripts/deploy-next-frontend-to-vmid5000.sh

# Legacy static fallback only:
scp frontend/public/index.html root@192.168.11.140:/var/www/html/index.html

Environment Variables

The deployment script uses these environment variables:

  • IP: Production server IP (default: 192.168.11.140)
  • DOMAIN: Domain name (default: explorer.d-bis.org)
  • PASSWORD: SSH password (default: L@kers2010)
IP=192.168.11.140 DOMAIN=explorer.d-bis.org ./scripts/deploy.sh

Mission-control and Track 4 runtime wiring

If you are deploying the Go explorer API with the mission-control additions enabled, set these backend env vars as well:

  • RPC_URL - Chain 138 RPC for Track 1 and mission-control status/SSE data
  • TOKEN_AGGREGATION_BASE_URL - used by GET /api/v1/mission-control/liquidity/token/{address}/pools
  • BLOCKSCOUT_INTERNAL_URL - used by GET /api/v1/mission-control/bridge/trace
  • EXPLORER_PUBLIC_BASE - public base URL returned in bridge trace links
  • CCIP_RELAY_HEALTH_URL - optional relay probe URL, for example http://192.168.11.11:9860/healthz
  • CCIP_RELAY_HEALTH_URLS - optional comma-separated named relay probes, for example mainnet=http://192.168.11.11:9860/healthz,bsc=http://192.168.11.11:9861/healthz,avax=http://192.168.11.11:9862/healthz
  • MISSION_CONTROL_CCIP_JSON - optional JSON-file fallback for relay health snapshots
  • OPERATOR_SCRIPTS_ROOT - root directory for Track 4 script execution
  • OPERATOR_SCRIPT_ALLOWLIST - comma-separated allowlist for POST /api/v1/track4/operator/run-script
  • OPERATOR_SCRIPT_TIMEOUT_SEC - optional per-script timeout in seconds

For nginx, include nginx-mission-control-sse.conf inside the same server block that proxies /explorer-api/, and update the proxy_pass target if your Go API is not listening on 127.0.0.1:8080.

Quick verification

curl -N https://explorer.d-bis.org/explorer-api/v1/mission-control/stream
curl "https://explorer.d-bis.org/explorer-api/v1/mission-control/bridge/trace?tx=0x..."
curl "https://explorer.d-bis.org/explorer-api/v1/mission-control/liquidity/token/0x93E66202A11B1772E55407B32B44e5Cd8eda7f22/pools"
# Optional relay probe from the explorer host:
curl http://192.168.11.11:9860/healthz

Rollback

If deployment fails, rollback to previous version:

ssh root@192.168.11.140
cp /var/www/html/index.html.backup.* /var/www/html/index.html

For the Next standalone path, restart the previous release by repointing /opt/solacescanscout/frontend/current to the prior release and restarting solacescanscout-frontend.

Testing

After deployment, test the explorer:

./scripts/test.sh

Or manually:

curl -k -I https://explorer.d-bis.org/