Configuration and modules
The launcher reads one explicit environment file. That file takes precedence over environment variables inherited from a developer shell, reducing accidental connections to another database or bucket.
bun run deploy modulesbun run deploy config --env-file deploy/.env.stagingCOMPOSE_PROFILES selects services. The default staging selection is core,world,automation,monitoring.
| Profile | Services | Additional configuration |
|---|---|---|
core |
Mainframe, Postgres, SRS, indexer, Caddy | Core secrets, storage, admin account, public IP |
storage |
Local MinIO and bucket initialization | Use for a local deployment, not the managed staging bucket |
world |
world-sim | Admin token, world configuration, advertised admin URL |
automation |
auto-operator | Mode, serial selection, provider selection, battery thresholds |
monitoring |
Grafana, Prometheus, host/container/Postgres exporters, Loki, Alloy | Grafana admin credentials |
feeds |
Weather and radar-net | Weather sites and upstream connectivity |
detections |
Vision module | OpenRouter key and model roster; incurs model usage |
interop |
TAK bridge | CA, server certificate, key, and client certificates |
autel |
Remote Autel observer | Broker credentials and remote SRS addresses |
native-autel |
Native Autel service and authenticated MQTT broker | Provisioned controller bindings and native config |
Choose autel or native-autel, never both: they use the same Core provider identity. The launcher makes this check and builds MAINFRAME_ENABLED_MODULES from the selected profiles. API keys remain stable across restarts; changing a configured value does not rotate an existing database key automatically.
Important settings
Section titled “Important settings”| Setting | Meaning |
|---|---|
MAINFRAME_BASE_URL |
Mainframe’s public authentication origin |
MAINFRAME_PUBLIC_URL |
Frontend build-time default connection URL |
MAINFRAME_TRUSTED_ORIGINS |
Browser origins allowed to carry credentials |
PUBLIC_IP |
SRS’s reachable WebRTC candidate |
SRS_RTMP |
Publishing address reachable by providers and controllers |
BLOB_S3_* |
Private object-store endpoint, region, bucket, and credentials |
WORLD_SIM_PUBLIC_URL |
Base URL for the simulator admin link |
MAINFRAME_AUTONOMY |
Core rule behavior: suggestions by default, or automatic actions |
AUTO_OPERATOR_MODE |
Separate module behavior: suggestions or automatic mission dispatch |
AUTO_OPERATOR_SERIALS |
Exact comma-separated serial allowlist |
AUTO_OPERATOR_SERIAL_PREFIX |
Optional literal serial prefix; no wildcard syntax |
AUTO_OPERATOR_PROVIDER_IDS |
Provider identities allowed by the serial selection |
Exact serials and a prefix form an OR selection, then the provider restriction applies. Empty serial selection permits no aircraft. Automatic mode refuses to start without a selection.
Changes to deployment environment values require container recreation. Changing MAINFRAME_PUBLIC_URL also requires rebuilding the frontend image. Document edits made through Terminal take effect through Mainframe’s document watches.
The shared environment helper supports _FILE variants for application secrets. To use Compose secrets, explicitly mount the file and pass its _FILE variable in the service configuration; the default deployment examples use a protected environment file.