You are viewing archived documentation for v0.2. Go to latest →

Configuration

All runtime configuration is via environment variables in .env. See .env.example for the full template.

FQDNs

Variable Description Example
BNG_APP_FQDN Web UI + API domain birdnet.example.com
BNG_MQTT_FQDN MQTT broker domain mqtt.birdnet.example.com
BNG_S3_FQDN MinIO console domain s3.birdnet.example.com

Three subdomains are required. All route through Traefik.

Hub API

Variable Default Description
API_PORT 3000 HTTP listen port (internal)
JWT_SECRET required Secret for signing JWT session tokens
PLATFORM_ADMIN_EMAILS Comma-separated emails for platform admin access
HUB_INTERNAL_API_KEY Backwards-compatible machine access key
LOG_LEVEL info Log level: debug, info, warn, error

PostgreSQL

Variable Default Description
PG_HOST localhost Database host
PG_PORT 5432 Database port
PG_DATABASE birdnet Database name
PG_USER birdnet Database user
PG_PASSWORD birdnet Database password
BNG_POSTGRES_PASSWORD Docker Compose alias for PG_PASSWORD

Redis

Variable Default Description
REDIS_HOST localhost Redis host
REDIS_PORT 6379 Redis port
REDIS_PASSWORD Redis auth password (empty = no auth)

MQTT (Hub side)

Variable Default Description
MQTT_BROKER_URL mqtt://localhost:1883 Broker URL (internal)
MQTT_HUB_PASSWORD hub-internal-secret Hub ingester MQTT password
MQTT_ADMIN_USER admin Mosquitto dynamic security admin
MQTT_ADMIN_PASSWORD admin Mosquitto dynamic security password

MinIO

Variable Default Description
MINIO_ENDPOINT localhost MinIO host
MINIO_PORT 9000 MinIO port
MINIO_ACCESS_KEY minioadmin MinIO access key
MINIO_SECRET_KEY minioadmin MinIO secret key
MINIO_BUCKET birdnet-audio Bucket name (audio + species images)
MINIO_USE_SSL false Use SSL for MinIO connection

Docker Compose

Variable Default Description
BNG_VOLUMES_ROOT ./storage Root directory for all persistent data
PUID Container user ID
PGID Container group ID

Satellite (Pi)

Variable Default Description
SATELLITE_ID required UUID from satellite registration
TENANT_ID required Tenant UUID
MQTT_BROKER_URL mqtt://localhost:1883 Broker URL (mqtts:// for production)
MQTT_USERNAME required MQTT username (= satellite ID)
MQTT_PASSWORD required MQTT password (from registration)
CAPTURE_MODE simulate alsa, simulate, or replay
AUDIO_DEVICE default ALSA device name
SAMPLE_RATE 48000 Audio sample rate (Hz)
CHUNK_DURATION_MS 3000 Chunk duration (ms)
OVERLAP_MS 0 Overlap between chunks
RECORDING_PROFILE continuous Default recording profile
LATITUDE 0 Static latitude
LONGITUDE 0 Static longitude
GPS_MODE static static or gpsd
GPSD_HOST localhost gpsd daemon host
GPSD_PORT 2947 gpsd daemon port
DATA_DIR ./data Local storage directory
RETENTION_HOURS 48 Keep chunks after acknowledgment
TELEMETRY_INTERVAL_MS 60000 Telemetry report interval
AUDIO_FILTER true Enable on-device audio pre-filtering
REPLAY_DIR fixtures/ Directory for replay mode WAV files

Platform Settings (UI)

Configured in Platform Settings page, stored in platform_settings table.

Setting Default Description
allow_self_registration true Users can register without invite
allow_tenant_creation false Logged-in users can create tenants
allow_invite_links true Admins can generate invite links
image_download_delay_seconds 5 Delay between Wikipedia image downloads

Tenant Settings (UI)

Configured in Tenant Settings page, stored in tenant_settings table.

Setting Default Description
confidence_high 0.7 High confidence threshold
confidence_low 0.4 Low/uncertain confidence threshold
min_confidence 0.1 Minimum display threshold
offline_timeout_minutes 5 Satellite offline detection timeout
verification_consensus 3 Votes needed for consensus
retention_hours 48 Satellite local storage retention
watchlist_species [] Custom species watchlist for rare alerts