Default paths
Everything Fregata writes lives in well-known places. This page is the canonical map.
Top-level layout
Section titled “Top-level layout”~/Fregata/├── config/ # FRIGATE_CONFIG_DIR│ ├── config.yml # the file you edit│ ├── frigate.db # SQLite events / recordings index│ ├── model_cache/ # downloaded Frigate+ models│ ├── models/ # your own ONNX (conventional)│ └── ssl/ # cert.pem + privkey.pem (optional)├── media/ # FRIGATE_MEDIA_DIR│ ├── recordings/<camera>/<date>/<hour>/<minute.second>.mp4│ ├── clips/<camera>-<event>.mp4│ ├── clips/thumbs/ # event thumbnails│ ├── clips/triggers/ # synthetic clips for trigger pipeline│ ├── clips/faces/ # face-recognition snapshots│ └── exports/ # user-initiated exports├── temp/ # FRIGATE_CACHE_DIR (RAM-disk)│ ├── logs/frigate/current # live Frigate log│ ├── nginx_cache/ # nginx slice cache│ └── go2rtc.yaml # go2rtc generated config├── run/ # FRIGATE_RUN_DIR (SSD-resident)│ └── *.sem # POSIX semaphore tracker files└── logs/ # rotated logs (after a crash) ├── current # symlink to active log └── frigate-<timestamp>.logtemp/ is mounted as a HFS+ image on a RAM disk and is destroyed
on quit. run/ lives on the SSD because semaphore state has to
survive reboots. Everything else is what you’d expect.
Where the macOS app puts its own state
Section titled “Where the macOS app puts its own state”| Path | What’s in it |
|---|---|
/Applications/Fregata.app | The signed, notarised bundle. |
~/Library/Preferences/com.fregata.app.plist | Folder choices, env vars, “launch at login” flag, welcome-wizard state. |
Keychain (com.fregata.app service) | The current Paseto licence token. |
| macOS Service Management database | Login Item registration. No user-visible file. |
Bundle internals
Section titled “Bundle internals”Most users never care about this — but if you’re poking around or debugging:
Fregata.app/Contents/├── Info.plist├── MacOS/Fregata # the Swift entry point└── Resources/ ├── frigate-ffmpeg # bundled ffmpeg binary ├── frigate-ffprobe ├── frigate-go2rtc ├── frigate-nginx ├── Python.framework/ # bundled Python interpreter + stdlib ├── lib/python3.11/site-packages/ # Frigate, Fregata, deps ├── models/default.onnx # the bundled YOLOv9-tiny ├── labelmap.txt # default COCO labels └── web/ # built web UI assetsEverything in Resources/ is signed at build time. Modifying the
bundle in place breaks the signature and triggers Gatekeeper
warnings on next launch.
The Python core’s stderr is redirected to
~/Fregata/temp/logs/frigate/current (RAM-disk). On a clean quit
the file is gone; on a crash, the Swift launcher copies it to
~/Fregata/logs/current so it survives the restart.
To follow the live log from a terminal:
tail -F ~/Fregata/temp/logs/frigate/currentTo see the most recent crash log:
less ~/Fregata/logs/currentThe tray’s Open Crash Log entry just opens the second of those in your default text-file viewer.
Changing locations
Section titled “Changing locations”The two folders you’d realistically want to move are config and media. Both are settable via Settings → Folders → Change … Location… in the tray. The launcher writes the new path to UserDefaults and Fregata moves the existing files on next launch.
Alternatively, set FRIGATE_CONFIG_DIR or FRIGATE_MEDIA_DIR
explicitly in Settings → Environment Variables and restart.
The env-var path wins over the UserDefaults path; this is useful
when you’ve separately copied or symlinked data first.
Pretty-printing the layout
Section titled “Pretty-printing the layout”If you want to see what Fregata is actually using right now (in case you’ve overridden any of it):
fregata diag paths # if you've added Fregata's bin/ to PATH# or, more reliably:/Applications/Fregata.app/Contents/MacOS/Fregata --print-pathsBoth print a table of resolved paths to standard output and exit. Useful when filing a bug.