mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
Two mobile-QA defects across the block explorers.
Defect 1 (org explorers showed goerli stub data): api-explore.{zoo,hanzo,
pars}.network served the self-signed INGRESS DEFAULT CERT (no cert-manager
Ingress for those SNIs), so browsers rejected every FE fetch and react-query
fell back to the goerli stubs behind stuck skeletons. FE wiring + backend were
already correct (all 6 chains served real per-chain data via the existing
IngressRoutes). Fix: dedicated letsencrypt-prod Ingress per org api host ->
explorer-unified:8090, mirroring api-explore-lux-network. Certs issued, all
three now ssl_verify=0, real data flows. Also source per-org brand identity
(NETWORK_NAME/currency) in the configmaps so titles render the right brand.
Defect 2 (mobile 390px detail pages: dropped labels, horizontal clip, tab
overlap): three shared-UI fixes.
- Footer: was the real horizontal-overflow driver — inline gridTemplateColumns
minmax(auto,470px) never collapsed on mobile. Now grid-cols-1 on mobile.
- DetailedInfo.ItemValue: add min-w-0 + mobile wrap so long address/hash values
stop forcing the page wider than the viewport (desktop unchanged).
- AdaptiveTabsList: @luxfi/ui Tabs silently discard Chakra style props
(overflowX/w/flexShrink/...), so express mobile scroll + shrink-0 as
className. Tab strip now scrolls instead of collapsing/overlapping.
Co-authored-by: Hanzo Dev <[email protected]>
144 lines
5.0 KiB
YAML
144 lines
5.0 KiB
YAML
---
|
|
# Lux Mainnet — explorer BACKEND API ingress (api-explore.lux.network).
|
|
#
|
|
# WHY THIS EXISTS (do not delete): the explorer Go backend serves the API by
|
|
# Host header via the ingress default backend, so api-explore.lux.network
|
|
# *answered* even with no ingress rule — but with NO TLS block for that SNI the
|
|
# controller served the self-signed "INGRESS DEFAULT CERT". Browsers then reject
|
|
# every api-explore.lux.network request (ERR_CERT_AUTHORITY_INVALID) and the
|
|
# whole explorer FE is stuck in skeleton loaders ("0/5 CONNECTED", no blocks).
|
|
#
|
|
# This dedicated Ingress gives the host a real letsencrypt-prod cert (served for
|
|
# that SNI) and routes to the explorer API service. Mirrors the working
|
|
# api-explore.osage.network wiring. Verified: explore.lux.network then loads
|
|
# live blocks/transactions/stats (curl ssl_verify_result=0).
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: api-explore-lux-network
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: lux, network: mainnet}
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
|
|
spec:
|
|
ingressClassName: ingress
|
|
rules:
|
|
- host: api-explore.lux.network
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: explorer-unified
|
|
port:
|
|
number: 8090
|
|
tls:
|
|
- hosts:
|
|
- api-explore.lux.network
|
|
secretName: api-explore-lux-network-tls
|
|
---
|
|
# Zoo Mainnet — explorer BACKEND API ingress (api-explore.zoo.network).
|
|
#
|
|
# Same root cause as lux above: without a dedicated Ingress declaring a TLS
|
|
# block for this SNI, the controller serves the self-signed "INGRESS DEFAULT
|
|
# CERT", browsers reject every api-explore.zoo.network request
|
|
# (ERR_CERT_AUTHORITY_INVALID), the FE data fetches fail, and react-query
|
|
# falls back to the goerli stub placeholders behind stuck skeleton loaders.
|
|
# The chain routing already works (the IngressRoute lux-explorer-zoo rewrites
|
|
# to /v1/indexer/zoo via the blockscout-prefix-zoo middleware and returns real
|
|
# Zoo 200200 data) — this Ingress only supplies the browser-valid LE cert.
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: api-explore-zoo-network
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: zoo, network: mainnet}
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
|
|
spec:
|
|
ingressClassName: ingress
|
|
rules:
|
|
- host: api-explore.zoo.network
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: explorer-unified
|
|
port:
|
|
number: 8090
|
|
tls:
|
|
- hosts:
|
|
- api-explore.zoo.network
|
|
secretName: api-explore-zoo-network-tls
|
|
---
|
|
# Hanzo Mainnet — explorer BACKEND API ingress (api-explore.hanzo.network).
|
|
# See the zoo block above; routes real Hanzo 36963 data via the
|
|
# lux-explorer-hanzo IngressRoute + blockscout-prefix-hanzo. This Ingress only
|
|
# supplies the browser-valid LE cert for the api-explore.hanzo.network SNI.
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: api-explore-hanzo-network
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
|
|
spec:
|
|
ingressClassName: ingress
|
|
rules:
|
|
- host: api-explore.hanzo.network
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: explorer-unified
|
|
port:
|
|
number: 8090
|
|
tls:
|
|
- hosts:
|
|
- api-explore.hanzo.network
|
|
secretName: api-explore-hanzo-network-tls
|
|
---
|
|
# Pars Mainnet — explorer BACKEND API ingress (api-explore.pars.network).
|
|
# See the zoo block above; routes real Pars 494949 data via the
|
|
# lux-explorer-pars IngressRoute + blockscout-prefix-pars. This Ingress only
|
|
# supplies the browser-valid LE cert for the api-explore.pars.network SNI.
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: api-explore-pars-network
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: pars, network: mainnet}
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
|
|
spec:
|
|
ingressClassName: ingress
|
|
rules:
|
|
- host: api-explore.pars.network
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: explorer-unified
|
|
port:
|
|
number: 8090
|
|
tls:
|
|
- hosts:
|
|
- api-explore.pars.network
|
|
secretName: api-explore-pars-network-tls
|