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.