mirror of
https://github.com/luxfi/explore.git
synced 2026-07-27 05:54:15 +00:00
Build the same source four ways from one repo:
- ghcr.io/luxfi/explore (lux brand, default)
- ghcr.io/luxfi/explore-hanzo (hanzo brand)
- ghcr.io/luxfi/explore-zoo (zoo brand)
- ghcr.io/luxfi/explore-pars (pars brand)
Each is built for linux/amd64 + linux/arm64 in parallel on hanzo ARC
runners (no QEMU), then merged into a multi-arch manifest.
Brand selection at build time via NEXT_PUBLIC_BRAND, with all
brand-specific assets (logo, favicon, theme, IAM URL) loaded from
NEXT_PUBLIC_* env vars — no hardcoded brand strings in source.
External operators set NEXT_PUBLIC_BRAND=other and supply their own
NEXT_PUBLIC_* env vars (see .env.example.external). The repo carries
no third-party trademarks.
Files:
- lib/white-label.ts brand detection + helpers
- .env.example.{lux,hanzo,zoo,pars,external} deploy templates
- .github/workflows/build-lux.yml 4-brand × 2-arch matrix
- Dockerfile accept NEXT_PUBLIC_BRAND
- configs/app/chainRegistry.ts add SPC + Pars devnet,
chainId fields, white-label
chain builder
50 lines
1.6 KiB
Bash
50 lines
1.6 KiB
Bash
# External white-label deployment template.
|
|
#
|
|
# This file documents the env vars an external operator must set when running
|
|
# this image with their own brand. The source code is brand-neutral — all
|
|
# strings below are operator-supplied at deploy time.
|
|
#
|
|
# Copy and customize for your deployment:
|
|
# cp .env.example.external .env.local
|
|
#
|
|
# Replace every <PLACEHOLDER> with your own values. NEVER commit a populated
|
|
# version of this file with third-party trademarks back to this repo.
|
|
|
|
NEXT_PUBLIC_BRAND=other
|
|
|
|
# Network
|
|
NEXT_PUBLIC_NETWORK_NAME=<Your Network Name>
|
|
NEXT_PUBLIC_NETWORK_SHORT_NAME=<SYMBOL>
|
|
NEXT_PUBLIC_NETWORK_ID=<chain-id-uint64>
|
|
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=<Token Name>
|
|
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=<TOKEN>
|
|
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
|
|
NEXT_PUBLIC_NETWORK_RPC_URL=https://<your-rpc-host>/rpc
|
|
|
|
# API
|
|
NEXT_PUBLIC_API_HOST=<your-api-host>
|
|
NEXT_PUBLIC_API_PROTOCOL=https
|
|
NEXT_PUBLIC_API_BASE_PATH=/
|
|
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=wss
|
|
|
|
# App
|
|
NEXT_PUBLIC_APP_HOST=<your-explorer-host>
|
|
NEXT_PUBLIC_APP_PROTOCOL=https
|
|
NEXT_PUBLIC_IS_TESTNET=false
|
|
|
|
# Branding (operator-supplied)
|
|
NEXT_PUBLIC_NETWORK_ORG_NAME=<Your Org>
|
|
NEXT_PUBLIC_NETWORK_WEBSITE_URL=https://<your-domain>
|
|
NEXT_PUBLIC_NETWORK_DESCRIPTION=<one-line description>
|
|
NEXT_PUBLIC_NETWORK_GITHUB_URL=
|
|
NEXT_PUBLIC_NETWORK_TWITTER_URL=
|
|
NEXT_PUBLIC_NETWORK_DISCORD_URL=
|
|
|
|
# Auth (IAM) — operator-supplied OIDC provider
|
|
NEXT_PUBLIC_ACCOUNT_AUTH_PROVIDER=oidc
|
|
NEXT_PUBLIC_OIDC_SERVER_URL=<https://your-iam-host>
|
|
NEXT_PUBLIC_OIDC_CLIENT_ID=<your-client-id>
|
|
|
|
# Theme
|
|
NEXT_PUBLIC_COLOR_THEME_DEFAULT=dark
|