343 lines
11 KiB
YAML
343 lines
11 KiB
YAML
# Per-brand block-explorer frontends for DEVNET (Lux / Zoo / Hanzo / Pars).
|
|
#
|
|
# Mirrors the lux-testnet explore-fe-* stack (same Next.js "explore" image
|
|
# family, per-brand image, envFrom configmap). Devnet user-facing hosts follow
|
|
# the canonical brand scheme proven by the mainnet explore-env-* configmaps:
|
|
# mainnet explore.<brand>.network
|
|
# testnet explore.<brand>-test.network
|
|
# devnet explore.<brand>-dev.network
|
|
#
|
|
# RPC note: on devnet ONLY the C-chain EVM is live (chainId 96367,
|
|
# api.lux-dev.network/v1/chain/c). The per-brand L1 EVMs (hanzo/zoo/pars
|
|
# aliases) currently return 404 on devnet, so every devnet brand explorer
|
|
# points its NETWORK_RPC_URL at the devnet C-chain — the only functioning
|
|
# devnet EVM. Swap to the brand alias here once those L1s are bootstrapped
|
|
# on devnet. (testnet keeps per-brand RPC because hanzo/zoo testnet EVMs are
|
|
# live: hanzo 36964, zoo 200201.)
|
|
#
|
|
# image pull secret ghcr-luxfi already present in lux-devnet.
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: explore-env-lux
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: lux, network: devnet }
|
|
data:
|
|
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST: "https://api-explorer.lux-dev.network"
|
|
NEXT_PUBLIC_API_HOST: "api-explorer.lux-dev.network"
|
|
NEXT_PUBLIC_APP_HOST: "explore.lux-dev.network"
|
|
NEXT_PUBLIC_CONTRACT_INFO_API_HOST: "https://api-explorer.lux-dev.network"
|
|
NEXT_PUBLIC_IS_TESTNET: "true"
|
|
NEXT_PUBLIC_NETWORK_ID: "96367"
|
|
NEXT_PUBLIC_NETWORK_RPC_URL: "https://api.lux-dev.network/v1/chain/c"
|
|
NEXT_PUBLIC_STATS_API_HOST: "https://api-explorer.lux-dev.network"
|
|
NEXT_PUBLIC_VISUALIZE_API_HOST: "https://api-explorer.lux-dev.network"
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: explore-env-zoo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: zoo, network: devnet }
|
|
data:
|
|
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST: "https://api-explorer.zoo-dev.network"
|
|
NEXT_PUBLIC_API_HOST: "api-explorer.zoo-dev.network"
|
|
NEXT_PUBLIC_APP_HOST: "explore.zoo-dev.network"
|
|
NEXT_PUBLIC_COLOR_THEME_OVERRIDES: '{"light":{"blue.500":"#000000","blue.600":"#000000","blue.700":"#000000","accent":"#000000","primary":"#000000"},"dark":{"blue.500":"#FFFFFF","blue.600":"#FFFFFF","blue.700":"#FFFFFF","accent":"#FFFFFF","primary":"#FFFFFF"}}'
|
|
NEXT_PUBLIC_CONTRACT_INFO_API_HOST: "https://api-explorer.zoo-dev.network"
|
|
NEXT_PUBLIC_IS_TESTNET: "true"
|
|
NEXT_PUBLIC_NETWORK_ID: "96367"
|
|
NEXT_PUBLIC_NETWORK_RPC_URL: "https://api.lux-dev.network/v1/chain/c"
|
|
NEXT_PUBLIC_STATS_API_HOST: "https://api-explorer.zoo-dev.network"
|
|
NEXT_PUBLIC_VISUALIZE_API_HOST: "https://api-explorer.zoo-dev.network"
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: explore-env-hanzo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: hanzo, network: devnet }
|
|
data:
|
|
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST: "https://api-explorer.hanzo-dev.network"
|
|
NEXT_PUBLIC_API_HOST: "api-explorer.hanzo-dev.network"
|
|
NEXT_PUBLIC_APP_HOST: "explore.hanzo-dev.network"
|
|
NEXT_PUBLIC_CONTRACT_INFO_API_HOST: "https://api-explorer.hanzo-dev.network"
|
|
NEXT_PUBLIC_IS_TESTNET: "true"
|
|
NEXT_PUBLIC_NETWORK_ID: "96367"
|
|
NEXT_PUBLIC_NETWORK_RPC_URL: "https://api.lux-dev.network/v1/chain/c"
|
|
NEXT_PUBLIC_STATS_API_HOST: "https://api-explorer.hanzo-dev.network"
|
|
NEXT_PUBLIC_VISUALIZE_API_HOST: "https://api-explorer.hanzo-dev.network"
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: explore-env-pars
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: pars, network: devnet }
|
|
data:
|
|
NEXT_PUBLIC_ADMIN_SERVICE_API_HOST: "https://api-explorer.pars-dev.network"
|
|
NEXT_PUBLIC_API_HOST: "api-explorer.pars-dev.network"
|
|
NEXT_PUBLIC_APP_HOST: "explore.pars-dev.network"
|
|
NEXT_PUBLIC_CONTRACT_INFO_API_HOST: "https://api-explorer.pars-dev.network"
|
|
NEXT_PUBLIC_IS_TESTNET: "true"
|
|
NEXT_PUBLIC_NETWORK_ID: "96367"
|
|
NEXT_PUBLIC_NETWORK_RPC_URL: "https://api.lux-dev.network/v1/chain/c"
|
|
NEXT_PUBLIC_STATS_API_HOST: "https://api-explorer.pars-dev.network"
|
|
NEXT_PUBLIC_VISUALIZE_API_HOST: "https://api-explorer.pars-dev.network"
|
|
---
|
|
# Deployments + Services (one per brand), cloned from lux-testnet explore-fe-*.
|
|
# Per-brand image, envFrom configmap above, svc 80 -> containerPort 3000.
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-lux
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: lux, network: devnet }
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: { app: explore-fe, brand: lux, network: devnet }
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: { maxSurge: 1, maxUnavailable: 1 }
|
|
template:
|
|
metadata:
|
|
labels: { app: explore-fe, brand: lux, network: devnet }
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/luxfi/explore:v1.0.4
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- { name: ui, containerPort: 3000 }
|
|
env:
|
|
- { name: PORT, value: "3000" }
|
|
envFrom:
|
|
- configMapRef: { name: explore-env-lux }
|
|
resources:
|
|
requests: { cpu: 100m, memory: 256Mi }
|
|
limits: { cpu: "1", memory: 2Gi }
|
|
startupProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 30
|
|
readinessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 10
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 90
|
|
periodSeconds: 60
|
|
timeoutSeconds: 10
|
|
failureThreshold: 5
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: explore-fe-lux
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: lux, network: devnet }
|
|
spec:
|
|
type: ClusterIP
|
|
selector: { app: explore-fe, brand: lux, network: devnet }
|
|
ports:
|
|
- { name: http, port: 80, targetPort: 3000, protocol: TCP }
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-zoo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: zoo, network: devnet }
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: { app: explore-fe, brand: zoo, network: devnet }
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: { maxSurge: 1, maxUnavailable: 1 }
|
|
template:
|
|
metadata:
|
|
labels: { app: explore-fe, brand: zoo, network: devnet }
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/zooai/explore:v1.0.4
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- { name: ui, containerPort: 3000 }
|
|
env:
|
|
- { name: PORT, value: "3000" }
|
|
envFrom:
|
|
- configMapRef: { name: explore-env-zoo }
|
|
resources:
|
|
requests: { cpu: 100m, memory: 256Mi }
|
|
limits: { cpu: "1", memory: 2Gi }
|
|
startupProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 30
|
|
readinessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 10
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 90
|
|
periodSeconds: 60
|
|
timeoutSeconds: 10
|
|
failureThreshold: 5
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: explore-fe-zoo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: zoo, network: devnet }
|
|
spec:
|
|
type: ClusterIP
|
|
selector: { app: explore-fe, brand: zoo, network: devnet }
|
|
ports:
|
|
- { name: http, port: 80, targetPort: 3000, protocol: TCP }
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-hanzo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: hanzo, network: devnet }
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: { app: explore-fe, brand: hanzo, network: devnet }
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: { maxSurge: 1, maxUnavailable: 1 }
|
|
template:
|
|
metadata:
|
|
labels: { app: explore-fe, brand: hanzo, network: devnet }
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/hanzoai/explore:v1.0.4
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- { name: ui, containerPort: 3000 }
|
|
env:
|
|
- { name: PORT, value: "3000" }
|
|
envFrom:
|
|
- configMapRef: { name: explore-env-hanzo }
|
|
resources:
|
|
requests: { cpu: 100m, memory: 256Mi }
|
|
limits: { cpu: "1", memory: 2Gi }
|
|
startupProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 30
|
|
readinessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 10
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 90
|
|
periodSeconds: 60
|
|
timeoutSeconds: 10
|
|
failureThreshold: 5
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: explore-fe-hanzo
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: hanzo, network: devnet }
|
|
spec:
|
|
type: ClusterIP
|
|
selector: { app: explore-fe, brand: hanzo, network: devnet }
|
|
ports:
|
|
- { name: http, port: 80, targetPort: 3000, protocol: TCP }
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-pars
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: pars, network: devnet }
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: { app: explore-fe, brand: pars, network: devnet }
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: { maxSurge: 1, maxUnavailable: 1 }
|
|
template:
|
|
metadata:
|
|
labels: { app: explore-fe, brand: pars, network: devnet }
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/parsdao/explore:v1.0.4
|
|
imagePullPolicy: IfNotPresent
|
|
ports:
|
|
- { name: ui, containerPort: 3000 }
|
|
env:
|
|
- { name: PORT, value: "3000" }
|
|
envFrom:
|
|
- configMapRef: { name: explore-env-pars }
|
|
resources:
|
|
requests: { cpu: 100m, memory: 256Mi }
|
|
limits: { cpu: "1", memory: 2Gi }
|
|
startupProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 30
|
|
readinessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 10
|
|
failureThreshold: 6
|
|
livenessProbe:
|
|
httpGet: { path: /, port: ui }
|
|
initialDelaySeconds: 90
|
|
periodSeconds: 60
|
|
timeoutSeconds: 10
|
|
failureThreshold: 5
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: explore-fe-pars
|
|
namespace: lux-devnet
|
|
labels: { app: explore-fe, brand: pars, network: devnet }
|
|
spec:
|
|
type: ClusterIP
|
|
selector: { app: explore-fe, brand: pars, network: devnet }
|
|
ports:
|
|
- { name: http, port: 80, targetPort: 3000, protocol: TCP }
|