Add Docker setup for BitcoinPurple explorer

- Dockerfile: node:20-alpine, compiles SCSS at build time, single image
  used for web server and all sync modes (blocks, peers, markets)
- docker-compose.yml: explorer + MongoDB (bind-mounted ./db) on shared
  'purple' network alongside bitcoinpurpled and electrumx
- docker/entrypoint.sh: generates settings.json from env vars via
  envsubst, dispatches to web/sync-blocks/sync-peers/reindex modes
- docker/settings.json.tmpl: minimal settings template parametrized
  for BitcoinPurple (coin, wallet RPC, MongoDB, theme)
- docker/mongo-init.sh: creates app user in explorerdb on first start
- .env.example: pre-filled defaults for BitcoinPurple
- CLAUDE.md: codebase guidance for Claude Code
- .gitignore: add db/ (MongoDB bind-mount data directory)
This commit is contained in:
2026-04-28 13:39:45 +02:00
parent 057c592a21
commit 306f494cd8
9 changed files with 560 additions and 1 deletions
+30
View File
@@ -0,0 +1,30 @@
# ─── Coin ────────────────────────────────────────────────────────────────────
COIN_NAME=BitcoinPurple
COIN_SYMBOL=BTCP
# POW, POS, or Hybrid
COIN_DIFFICULTY=POW
# ─── MongoDB (internal to this stack) ────────────────────────────────────────
MONGO_HOST=mongodb
MONGO_PORT=27017
MONGO_USER=eiquidus
MONGO_PASSWORD=change-me
MONGO_DATABASE=explorerdb
# ─── Wallet RPC ───────────────────────────────────────────────────────────────
# bitcoinpurpled container is reachable on the shared 'purple' Docker network
WALLET_RPC_HOST=bitcoinpurpled
WALLET_RPC_PORT=13495
# Copy rpcuser / rpcpassword values from ~/.bitcoinpurple/bitcoinpurple.conf
WALLET_RPC_USER=
WALLET_RPC_PASS=
# ─── Explorer web ────────────────────────────────────────────────────────────
# Host port the explorer is published on
EXPLORER_PORT=3001
# Bootswatch theme: Cerulean, Cosmo, Cyborg, Darkly, Flatly, Slate, Solar, ...
EXPLORER_THEME=Darkly
# ─── Sync intervals (seconds) ────────────────────────────────────────────────
SYNC_BLOCKS_INTERVAL=120
SYNC_PEERS_INTERVAL=300