mirror of
https://github.com/luxfi/explorer.git
synced 2026-09-24 00:25:12 +00:00
Module renamed to github.com/luxfi/explorer (was -unified). Imports
luxfi/indexer/{daemon,evm,storage,explorer} and luxfi/graph/{engine,
indexer,storage} as libraries; embeds the luxfi/explore SPA via go:embed
all:static.
A new ChainSupervisor wraps the existing ChainRegistry: adding a chain
(via config / mDNS / admin API) spawns a per-chain indexer goroutine plus
one graph engine + indexer per enabled subgraph; removing cancels them
and frees the routes from a sync.Map dispatcher mounted on /v1/indexer/,
/v1/explorer/ (legacy alias), and /v1/graph/.
Config schema is fully per-chain: indexer poll interval, list of graph
subgraphs (each can pick a built-in schema like amm, securities, fhe…),
brand (name/coin/accent + on-disk icon/logo paths), token features, and
top-level networks list. /envs.js exposes the chain list and active
brand to the SPA at runtime, so a deploy can rebrand by remounting
chains.yaml + assets — no image rebuild.
Dockerfile clones luxfi/explore + luxfi/indexer + luxfi/graph as
siblings inside the build, populates ./static from the SPA build, and
produces one binary. CI checks out the three repos as siblings so the
local replace in go.mod works without tagged releases.
22 lines
447 B
YAML
22 lines
447 B
YAML
services:
|
|
explorer:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
VERSION: dev
|
|
image: ghcr.io/luxfi/explorer:dev
|
|
ports:
|
|
- "8090:8090"
|
|
volumes:
|
|
- explorer-data:/data
|
|
- ./chains.example.yaml:/etc/explorer/chains.yaml:ro
|
|
environment:
|
|
DATA_DIR: /data
|
|
HTTP_ADDR: :8090
|
|
EXPLORER_CONFIG: /etc/explorer/chains.yaml
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
explorer-data:
|