Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Environment Variables

Every variable consumed by the openaudio/go-openaudio binary uses the OPENAUDIO_* prefix.

Node identity

OPENAUDIO_NODE_ENDPOINT
Public HTTPS endpoint of this node (FQDN, no port).

OPENAUDIO_DELEGATE_PRIVATE_KEY
secp256k1 private key (hex) used to sign validator and storage operations.

OPENAUDIO_DELEGATE_WALLET
Public wallet address matching the delegate private key.

OPENAUDIO_OWNER_WALLET
Wallet that holds the staked $AUDIO bond for this node.

Network

OPENAUDIO_ENV
default: prod
Network to join: prod, stage, or dev.

OPENAUDIO_ETH_PROVIDER_URL
default: per-network RPC
Ethereum L1 RPC used to sync the on-chain validator registry.

OPENAUDIO_ETH_REGISTRY_ADDRESS
default: per-network address
Address of the validator registry contract on Ethereum L1.

OPENAUDIO_PERSISTENT_PEERS
default: per-network peer list
Comma-separated CometBFT persistent-peer addresses.

OPENAUDIO_EXTERNAL_ADDRESS
host:port advertised to other validators for P2P dialing.

OPENAUDIO_MAX_INBOUND_PEERS
default: 200
Inbound peer connection cap.

OPENAUDIO_MAX_OUTBOUND_PEERS
default: 50
Outbound peer connection cap.

OPENAUDIO_USE_HTTPS_FOR_SDK
default: true
If true, the embedded SDK builds peer URLs as https://.

Listen addresses

OPENAUDIO_HTTP_PORT
default: 80
Port the echo proxy binds for HTTP traffic.

OPENAUDIO_HTTPS_PORT
default: 443
Port the echo proxy binds for HTTPS traffic.

OPENAUDIO_RPC_LADDR
default: unix:///tmp/cometbft.rpc.sock
CometBFT RPC listen address (Unix socket or tcp://).

OPENAUDIO_P2P_LADDR
default: tcp://0.0.0.0:26656
CometBFT P2P listen address.

OPENAUDIO_GRPC_LADDR
default: 0.0.0.0:50051
gRPC listen address for internal services (h2c).

OPENAUDIO_CORE_SERVER_ADDR
default: 0.0.0.0:26659
Custom Core API listen address.

TLS

OPENAUDIO_TLS_DISABLED
default: false
Disable TLS termination at the echo proxy.

OPENAUDIO_TLS_SELF_SIGNED
default: false; auto-true on localhost
Use a self-signed certificate instead of Let's Encrypt (dev).

Storage paths

OPENAUDIO_CORE_ROOT_DIR
default: ~/.audiusd; /data/core in the bundled prod image
Root for CometBFT state, keys, blockstore, and snapshots.

OPENAUDIO_UPTIME_DATA_DIR
default: /bolt; /data/bolt in the bundled prod image
BoltDB path for uptime / PoSt tracking.

OPENAUDIO_DB_URL
default: postgresql://postgres:postgres@localhost:5432/openaudio
Postgres connection string. The entrypoint auto-populates this when running the bundled image.

Mediorum (blob storage)

OPENAUDIO_STORAGE_ENABLED
default: true
Set to false to run a core-only RPC node with no blob storage.

OPENAUDIO_STORAGE_DRIVER_URL
Primary blob store DSN (s3://…, gs://…, file://…?no_tmp_dir=true).

OPENAUDIO_ARCHIVE_STORAGE_DRIVER_URL
Optional separate bucket for StoreAll-mode archive content.

OPENAUDIO_STORAGE_DRIVER_URL_MOVE_FROM
Source DSN for one-time blob migration. See Moving to blob storage.

OPENAUDIO_BLOB_STORAGE_STREAMING
default: false
Stream blob writes directly to the bucket rather than buffering locally.

OPENAUDIO_STORE_ALL
default: false
Store every blob the network has (otherwise only this node's replication slice).

OPENAUDIO_REPAIR_ENABLED
default: true
Run the periodic blob repair / replication daemon.

OPENAUDIO_REPAIR_INTERVAL
default: 1h
How often the repair daemon scans for missing replicas (Go duration).

OPENAUDIO_TRANSCODE_WORKERS
default: CPU count − 2
Concurrent ffmpeg transcoders.

OPENAUDIO_AUDIO_ANALYSIS_WORKERS
default: 4
Concurrent audio-analysis workers (BPM, key, etc.).

OPENAUDIO_TUSD_UPLOAD_DIR
default: /tmp/tusd-uploads
Staging directory for resumable (tusd) uploads.

OPENAUDIO_TRUSTED_NOTIFIER_ID
default: 1
Trusted notifier SPID for DMCA / takedown notices.

OPENAUDIO_NODE_OPERATOR_EMAIL
Contact email served at /contact.

OPENAUDIO_AUTO_UPGRADE_ENABLED
default: false
Self-restart when a newer image tag is detected.

OPENAUDIO_DISCOVERY_LISTENS_ENDPOINTS
Listen-event sink URLs to notify on play / listen events (comma-separated).

Consensus tuning

OPENAUDIO_COMET_LOG_LEVEL
default: statesync:info,p2p:none,mempool:none,rpc:none,*:error
CometBFT module log filter.

OPENAUDIO_TIMEOUT_PROPOSE_DELTA
default: 75ms
Per-round increment to the propose timeout.

OPENAUDIO_TIMEOUT_PREVOTE_DELTA
default: 75ms
Per-round increment to the prevote timeout.

OPENAUDIO_TIMEOUT_PRECOMMIT_DELTA
default: 75ms
Per-round increment to the precommit timeout.

OPENAUDIO_ARCHIVE
default: false
Run in archival mode: never prune blocks.

OPENAUDIO_RETAIN_HEIGHT
default: 604800
Number of recent blocks to retain when pruning (≈1 week of blocks).

State sync

State sync lets a new node bootstrap by downloading a recent snapshot from peers instead of replaying every block from genesis.

OPENAUDIO_STATE_SYNC_ENABLE
default: true
Attempt state sync on first boot (no-op if the DB already has blocks).

OPENAUDIO_STATE_SYNC_SERVE_SNAPSHOTS
default: false
Periodically produce snapshots and serve them to bootstrapping peers.

OPENAUDIO_STATE_SYNC_KEEP
default: 2
Number of snapshots to retain on disk.

OPENAUDIO_STATE_SYNC_BLOCK_INTERVAL
default: 100000
Blocks between snapshot creations.

OPENAUDIO_STATE_SYNC_CHUNK_FETCHERS
default: 10
Parallel chunk downloaders during snapshot restore.

OPENAUDIO_STATE_SYNC_RPC_SERVERS
default: per-network
Comma-separated CometBFT RPC servers to fetch snapshots from.

Validator warden

The warden audits validator uptime and proposes deregistration of persistently unhealthy validators.

OPENAUDIO_VALIDATOR_PURGE_MIN_VALIDATORS
default: 30 prod/stage, 3 dev
Floor below which the warden will not propose any further deregistrations.

OPENAUDIO_VALIDATOR_WARDEN_INTERVAL_MINS
default: 60 prod/stage, 2 dev
How often (minutes) the warden re-evaluates validator health.

Features

OPENAUDIO_CORE_ONLY
default: false
Skip Postgres setup and storage; run consensus only.

OPENAUDIO_ETL_ENABLED
default: false
Run the ETL indexer that materialises chain data into Postgres views.

OPENAUDIO_ETL_ENTITY_MANAGER_DATA_TYPES
default: all
Comma-separated subset of entity types to index.

OPENAUDIO_ETL_RUN_DOWN_MIGRATIONS
default: false
Run ETL down migrations on startup before re-running up (destructive; testing only).

OPENAUDIO_EXPLORER_ENABLED
default: false
Mount the read-only chain explorer at /explorer.

OPENAUDIO_GRPC_REFLECTION_ENABLED
default: false
Enable gRPC server reflection (useful with grpcurl).

OPENAUDIO_SKIP_ETH_REGISTRATION
default: false
Bypass Ethereum registry checks (dev / sandbox only).

OPENAUDIO_LOG_CRUD_PUSH
default: false
Verbose log of every mediorum CRUD push event.

OPENAUDIO_ENABLE_AXIOM
default: true outside dev
Forward logs to Axiom.

Logging & geo

OPENAUDIO_LOG_LEVEL
default: info
Application log level: debug, info, warn, error.

OPENAUDIO_LATITUDE
Override the node's reported latitude (devnet / globe view).

OPENAUDIO_LONGITUDE
Override the node's reported longitude.

OPENAUDIO_COUNTRY
Override the node's reported ISO country code.

Build metadata

OPENAUDIO_GIT_SHA
Git SHA baked into the build, surfaced on /health-check.

OPENAUDIO_DOCKER_COMPOSE_GIT_SHA
SHA of the compose repo that launched this container.

Postgres tuning

These are read by cmd/openaudio/entrypoint.sh and written to conf.d/50-openaudio-env.conf; they only apply when running the bundled image (which manages Postgres for you).

OPENAUDIO_PG_SHARED_BUFFERS
shared_buffers override.

OPENAUDIO_PG_WORK_MEM
work_mem override.

OPENAUDIO_PG_MAINTENANCE_WORK_MEM
maintenance_work_mem override.

OPENAUDIO_PG_EFFECTIVE_CACHE_SIZE
effective_cache_size override.

OPENAUDIO_PG_WAL_BUFFERS
wal_buffers override.

OPENAUDIO_PG_MAX_WAL_SIZE
max_wal_size override.

OPENAUDIO_PG_MIN_WAL_SIZE
min_wal_size override.

OPENAUDIO_PGALL
default: false
Allow Postgres connections from any host. Dev only — bind 127.0.0.1 if you set this.

Entrypoint behaviour

These only affect the bundled image's entrypoint script.

OPENAUDIO_HOT_RELOAD
default: false
Run with wgo for live-reload of .go / .templ files.

OPENAUDIO_CI
default: false
Forces hot-reload off even when OPENAUDIO_HOT_RELOAD=true.

OPENAUDIO_TEST_HARNESS_MODE
default: false
Boot Postgres, run .initdb/*.sql, then exec the test command.