spb/coinexplorer Public MIT
Self-hosted, zero-API-key explorer for stablecoins and major crypto.
Python 60.3%
HTML 23.6%
JavaScript 8.1%
CSS 6.8%
SQL 1%
1# Author: Simon-Pierre Boucher2# Mail: contact@spboucher.ai3# Stablecoin explorer stack.4#5# cp .env.example .env # then: docker compose up -d6#7# Storage today is SQLite on the shared `data` volume (indexer writes, API8# reads — WAL mode makes that safe). The postgres service is provisioned now9# so Deliverable 5 (PostgreSQL schema + migrations) is a config switch, not10# an infra change.1112services:13 postgres:14 image: postgres:16-alpine15 environment:16 POSTGRES_USER: ${POSTGRES_USER:-explorer}17 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-explorer}18 POSTGRES_DB: ${POSTGRES_DB:-explorer}19 volumes:20 - pgdata:/var/lib/postgresql/data21 ports:22 - "127.0.0.1:${POSTGRES_PORT:-5433}:5432"23 healthcheck:24 test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-explorer}"]25 interval: 10s26 timeout: 5s27 retries: 52829 indexer:30 build: .31 command: python run_indexer.py32 environment:33 EXPLORER_DB: /data/explorer.db34 EXPLORER_CHAINS: ${EXPLORER_CHAINS:-}35 EXPLORER_BACKFILL_DAYS: ${EXPLORER_BACKFILL_DAYS:-0}36 # set DATABASE_URL to use postgres instead of the SQLite volume37 DATABASE_URL: ${DATABASE_URL:-}38 volumes:39 - data:/data40 depends_on:41 postgres:42 condition: service_healthy43 restart: unless-stopped4445 api:46 build: .47 command: uvicorn api.main:app --host 0.0.0.0 --port 808048 environment:49 EXPLORER_DB: /data/explorer.db50 DATABASE_URL: ${DATABASE_URL:-}51 volumes:52 - data:/data53 ports:54 - "${API_PORT:-8080}:8080"55 depends_on:56 - indexer57 restart: unless-stopped5859volumes:60 data:61 pgdata:62