mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
- wallet: brandFamilyChains derives sibling networks (Lux mainnet/testnet/devnet)
from the multi-tenant chain registry so connect/add presents EVERY registered
network for the brand, not just the env chain; dedupe by id.
- login/menu: useProvider queryFn returns null (react-query v5 forbids undefined)
+ callers switched from '= {}' destructure default to '?? {}' so a null result
no longer crashes the wallet hooks (the busted-menu root cause).
- manifest: fix Pars chainId 7070 -> 494949 (regression) and drop the forbidden
'Subnet' term from sovereign L1 network names (-> '<Brand> Network').
- Validators page + /api/pchain proxy present; rebuild makes the live 5-validator
view visible on explore.lux.network.
Co-authored-by: Hanzo Dev <[email protected]>
245 lines
7.1 KiB
YAML
245 lines
7.1 KiB
YAML
---
|
|
# Lux Mainnet — canonical brand image + env from ConfigMap.
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-lux
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: lux, network: mainnet}
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: {app: explore-fe, brand: lux, network: mainnet}
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
|
|
template:
|
|
metadata:
|
|
labels: {app: explore-fe, brand: lux, network: mainnet}
|
|
spec:
|
|
imagePullSecrets: [{name: ghcr-luxfi}]
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/luxfi/explore:v1.0.1
|
|
imagePullPolicy: IfNotPresent
|
|
ports: [{containerPort: 3000, name: ui}]
|
|
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-mainnet
|
|
labels: {app: explore-fe, brand: lux, network: mainnet}
|
|
spec:
|
|
type: ClusterIP
|
|
selector: {app: explore-fe, brand: lux, network: mainnet}
|
|
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
|
|
---
|
|
# Zoo Mainnet
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-zoo
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: zoo, network: mainnet}
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: {app: explore-fe, brand: zoo, network: mainnet}
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
|
|
template:
|
|
metadata:
|
|
labels: {app: explore-fe, brand: zoo, network: mainnet}
|
|
spec:
|
|
imagePullSecrets: [{name: ghcr-luxfi}]
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/zooai/explore:v1.0.1
|
|
imagePullPolicy: IfNotPresent
|
|
ports: [{containerPort: 3000, name: ui}]
|
|
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-mainnet
|
|
labels: {app: explore-fe, brand: zoo, network: mainnet}
|
|
spec:
|
|
type: ClusterIP
|
|
selector: {app: explore-fe, brand: zoo, network: mainnet}
|
|
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
|
|
---
|
|
# Hanzo Mainnet
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-hanzo
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
|
|
template:
|
|
metadata:
|
|
labels: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
spec:
|
|
imagePullSecrets: [{name: ghcr-luxfi}]
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/hanzoai/explore:v1.0.1
|
|
imagePullPolicy: IfNotPresent
|
|
ports: [{containerPort: 3000, name: ui}]
|
|
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-mainnet
|
|
labels: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
spec:
|
|
type: ClusterIP
|
|
selector: {app: explore-fe, brand: hanzo, network: mainnet}
|
|
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
|
|
---
|
|
# Pars Mainnet
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: explore-fe-pars
|
|
namespace: lux-mainnet
|
|
labels: {app: explore-fe, brand: pars, network: mainnet}
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels: {app: explore-fe, brand: pars, network: mainnet}
|
|
strategy:
|
|
type: RollingUpdate
|
|
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
|
|
template:
|
|
metadata:
|
|
labels: {app: explore-fe, brand: pars, network: mainnet}
|
|
spec:
|
|
imagePullSecrets: [{name: ghcr-luxfi}]
|
|
containers:
|
|
- name: explore
|
|
image: ghcr.io/parsdao/explore:v1.0.1
|
|
imagePullPolicy: IfNotPresent
|
|
ports: [{containerPort: 3000, name: ui}]
|
|
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-mainnet
|
|
labels: {app: explore-fe, brand: pars, network: mainnet}
|
|
spec:
|
|
type: ClusterIP
|
|
selector: {app: explore-fe, brand: pars, network: mainnet}
|
|
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
|