SPB Git

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.6 KB · 62 lines yaml
Raw Blame History
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