Skip to content

Environment variables

Set these in Settings → Environment Variables in the menu-bar tray, or export them before launching Fregata from a terminal. The in-app editor is the more durable option — values persist across launches via UserDefaults.

These are the env vars introduced by the Fregata port itself.

DefaultEffect
unsetTelemetry block included in license heartbeat.
1Telemetry block omitted. Server marks the activation as opted-out.

The contents of the telemetry block are listed at Privacy & telemetry. Setting this to 1 is a complete opt-out — nothing telemetry-shaped leaves the Mac.

DefaultEffect
unsetStandard log levels.
1Per-pipeline timing logs at WARNING level.

Useful when investigating CPU spikes or detection latency. Expect several lines per second per camera; not something to leave on.

DefaultEffect
250 (ANE) / 0 (GPU/CPU)Detector keepalive interval.
0Disable the keepalive entirely.
<n>Custom interval in milliseconds.

The keepalive prevents the ANE from warming down between sparse detections, which would otherwise add a one-time ~30 ms penalty to the next inference. The default is a reasonable compromise; reduce to 100 for very latency-sensitive workloads, raise to 1000 if you don’t mind the occasional cold inference and want to save a fractional amount of power.

DefaultEffect
unsetWelcome wizard runs only on first launch.
1Welcome wizard runs on next launch and clears the flag.

Mostly a debugging aid. The same effect is available via Settings → Show Welcome… in the tray.

Override path to the .app bundle. Used by the bundle-integrity test harness; not useful in normal operation.

These are set by the Swift launcher before starting the Python core. The launcher fills them from your Settings choices; you only need to set them yourself if you’re overriding the launcher.

DefaultEffect
~/Fregata/configWhere config.yml, the SQLite DB, model cache, and TLS material live.
DefaultEffect
~/Fregata/mediaWhere recordings/, clips/, exports/ live.
DefaultEffect
~/Fregata/tempMount point for the RAM-disk used as scratch space.
DefaultEffect
~/Fregata/runPOSIX semaphore tracker files. Persists across reboots; must be on the SSD, not the RAM-disk.
DefaultEffect
Fregata.app/Contents/ResourcesWhere bundled binaries (ffmpeg, nginx, go2rtc), the default model, and web assets live. Don’t override unless you’re debugging the bundle.
DefaultEffect
computedRAM-disk size in megabytes. Default is a per-camera-config formula; set explicitly to lock a value.

These are read by config.yml via the !env_var YAML tag, not by Fregata or the launcher. They exist because writing secrets in plaintext into a file you might back up is a bad habit.

Conventional name for the MQTT broker password. Reference in config.yml:

mqtt:
password: !env_var FREGATA_MQTT_PASSWORD

You’re free to use any other name — it’s just a plain shell variable Frigate’s config loader will look up. Pick a convention and stick with it.

The same pattern works for any secret your config references: FREGATA_GENAI_KEY, FREGATA_HOMEASSISTANT_TOKEN, FREGATA_FRIGATE_PLUS_KEY, etc. Set them in the in-app editor and reference them with !env_var <NAME> in config.yml.

These exist in the source but compile into the binary; they are not runtime knobs:

  • FREGATA_LICENSING_URL — the licensing server’s base URL. Embedded into the build at compile time so a tampered binary can’t redirect requests.
  • FREGATA_BUILD_EPOCH_OVERRIDE — used by the build pipeline for reproducible-build timestamps.

There is no env var to override the licensing server URL at runtime. That’s a deliberate constraint; runtime overrides would defeat the version-gating that lets us ship security updates without breaking older licenses.