- Add Caddyfile: proxies to explorer:3001, domain set via $DOMAIN env var
- docker-compose: new caddy service (ports 80/443/443-udp), persistent
caddy_data/caddy_config volumes; remove direct explorer port binding
- .env.example: replace EXPLORER_PORT with DOMAIN
Set DOMAIN=localhost for local dev (HTTP), DOMAIN=your.domain.com for
production (Caddy fetches Let's Encrypt cert automatically)
- New 'Purple' theme based on Vapor with deep violet palette
- custom.scss: full UX redesign — pill search bar, gradient tables,
card hover effects, purple badges, contrasted placeholder text
- Fix btn-success → purple gradient (was green)
- Switch default theme to Purple in settings template
- 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)