Skip to content

Environment Variables

AppConfig

AppConfig General settings for all applications.

  • APP_ENV (default: production) - The environment in which the application is running (e.g., production, staging, development).
  • HEALTH_PORT (default: 0) - Port for the health check endpoint.
  • LOG_LEVEL (default: info) - Logging level. Possible values: trace, debug, info, warn, error, fatal, panic, disabled.
  • LOG_PRETTY (default: true) - Whether logs should be pretty-printed.
  • PROMETHEUS_PORT (default: 0) - Port for Prometheus metrics endpoint.
  • SENTRY_DSN - Sentry DSN for error monitoring.
  • OPEN_TELEMETRY_DSN (default: localhost:8126) -
  • OPEN_TELEMETRY_DEBUG (default: false) -

Shared

Shared Configuration that is used in different services.

  • NETWORK - Optionally, set network for all workers
  • NODE_RPC_URL (required, non-empty) - RPC endpoint URL for the node. Example: > NODE_RPC_URL=https://bsc-dataseed1.binance.org/
  • NODE_WS_URL (required, non-empty) - WebSocket endpoint URL for the node. Example: > NODE_WS_URL=wss://bsc-rpc.publicnode.com
  • POSTGRES_URL (required, non-empty) - Connection URL for PostgreSQL. Example: > POSTGRES_URL=postgres://postgres:password@localhost:5432/blockberry_dev?sslmode=disable
  • POSTGRES_LOG_LEVEL (default: none) - Logging level for PostgreSQL driver. Possible values: trace, debug, info, warn, error, none.
  • REDIS_URL (required, non-empty) - Connection URL for Redis. Example: > REDIS_URL=redis://localhost:6379
  • REDIS_STREAMS_URL (required, non-empty) - Connection URL for Redis Streams. Example: > REDIS_STREAMS_URL=redis://localhost:6379
  • S3_ACCESS_KEY_ID (required, non-empty) - AWS S3 access key ID. Example: > S3_ACCESS_KEY_ID=admin
  • S3_BUCKET_NAME (required, non-empty) - Name of the S3 bucket. Example: > S3_BUCKET_NAME=blockberry
  • S3_ENDPOINT (required, non-empty) - S3 endpoint URL. Example: > S3_ENDPOINT=localhost:9000
  • S3_SSL (required, non-empty) - Whether to use SSL for the S3 connection. Example: > S3_SSL=false
  • S3_SECRET_ACCESS_KEY (required, non-empty) - AWS S3 secret access key. Example: > S3_SECRET_ACCESS_KEY=password

FetcherConfig

FetcherConfig Configuration for Fetcher worker.

  • FETCHER_CONFIRM_DEPTH (required, non-empty) - ConfirmDepth represents the number of blocks that must pass before a block is considered confirmed by the fetcher. Example: > FETCHER_CONFIRM_DEPTH=50
  • FETCHER_INDEXER_STREAM (required, non-empty) - Stream name for the indexer. Example: > FETCHER_INDEXER_STREAM=confirmed_dataset
  • FETCHER_MAX_GOROUTINES (required, non-empty) - Maximum number of goroutines for parallel tasks. Example: > FETCHER_MAX_GOROUTINES=20
  • FETCHER_NETWORK (required, expand, non-empty, default: ${NETWORK}) - Network identifier for the fetcher. Example: > FETCHER_NETWORK=binance

IndexerConfig

IndexerConfig Configuration for Indexer worker.

  • INDEXER_NETWORK (required, expand, non-empty, default: ${NETWORK}) - Network identifier for the indexer. Example: > INDEXER_NETWORK=binance
  • INDEXER_PULL_STREAM (required, non-empty) - Stream name for pulling data in the indexer. Example: > INDEXER_PULL_STREAM=confirmed_dataset

IndexerSyncConfig

IndexerSyncConfig Configuration for IndexerSync worker.

  • INDEXER_SYNC_NETWORK (required, expand, non-empty, default: ${NETWORK}) - Network identifier for the indexer synchronization. Example: > INDEXER_SYNC_NETWORK=binance
  • INDEXER_SYNC_MAX_GOROUTINES (required, non-empty) - Maximum number of goroutines for synchronization tasks. Example: > INDEXER_SYNC_MAX_GOROUTINES=50

WebserverConfig

WebserverConfig Configuration for Webserver.

  • WEBSERVER_GRPC_PORT (required, non-empty) - Port for the gRPC server. Example: > WEBSERVER_GRPC_PORT=8002
  • WEBSERVER_HTTP_PORT (required, non-empty) - Port for the HTTP server. Example: > WEBSERVER_HTTP_PORT=8001
  • WEBSERVER_NODE_RPC_URLS (required, non-empty) - RPC URLs for each network used by the webserver. Example: > WEBSERVER_NODE_RPC_URLS="ethereum::https://ethereum-rpc.publicnode.com,binance::https://bsc-rpc.publicnode.com"