Files
explore/.env.example.external
T
hanzo-dev eda38ce65c feat: multi-brand build matrix + white-label support
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
2026-05-05 20:50:55 -07:00

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