anya-core 1.2.0

Enterprise-grade Bitcoin Infrastructure Platform
Documentation
version: '3.8'

services:
  anya-core:
    image: anya-enterprise:latest # Consider changing to a more specific local build tag if not pushing to a registry with this name
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8000" # Host port 8080 maps to container port 8000 (as per Dockerfile EXPOSE)
    environment:
      - BITCOIN_RPC_URL=http://bitcoin:8332
      - WEB5_DWN_URL=http://dwn:3000
      - WEB5_STORAGE_PATH=/data/web5
    volumes:
      - web5-data:/data/web5
    depends_on:
      - bitcoin
      - dwn
      # Add other services anya-core directly depends on for startup order
      # - db # Example if you add a database service for anya-core

  dwn:
    image: web5/dwn:latest
    ports:
      - "3000:3000"
    volumes:
      - web5-data:/data
    environment:
      - NODE_ENV=production
      - DWN_STORAGE_PATH=/data

  bitcoin:
    image: ruimarinho/bitcoin-core:24.0
    command: bitcoind -printtoconsole -server -rpcallowip=::/0 -rpcbind=0.0.0.0
    ports:
      - "8332:8332"
      - "18443:18443" # Testnet
    volumes:
      - bitcoin-data:/bitcoin

  bitcoin-exporter:
    image: metalmatze/bitcoin-prometheus-exporter:latest
    ports:
      - "9332:9332"
    command:
      - "--bitcoin.rpc.host=bitcoin"
      - "--bitcoin.rpc.port=8332"
      # If your Bitcoin Core RPC requires authentication, uncomment and set these:
      # - "--bitcoin.rpc.user=your_rpc_user"
      # - "--bitcoin.rpc.password=your_rpc_password"
    depends_on:
      - bitcoin

# Example of a database service if anya-core needs one
#  db:
#    image: postgres:15
#    volumes:
#      - postgres_data:/var/lib/postgresql/data
#    environment:
#      POSTGRES_DB: anya_core
#      POSTGRES_USER: postgres
#      POSTGRES_PASSWORD: anya_core_password # Ensure this matches DATABASE_URL in Dockerfile
#    ports:
#      - "5432:5432"

volumes:
  web5-data:
  bitcoin-data:
#  postgres_data: # Uncomment if db service is added