2
Configuration reference
Oliver Surke edited this page 2026-05-18 10:24:39 +02:00

Configuration reference

Config file: ~/.config/ssr/ssr.conf (override with --config or $SSR_CONFIG).

The file is sourced by bash but only KEY=VALUE lines (and # comments) are accepted; other content causes ssr to abort.

If SSR_CLOUD_PROVIDER= appears more than once with different values, interactive commands prompt once and rewrite the file to a single line (duplicate same values are merged silently).

Keys

Key Default Purpose
SSR_CLOUD_PROVIDER icloud icloud | dropbox | googledrive | onedrive | custom
SSR_CLOUD_PATH - Absolute path; only when provider is custom
SSR_BACKUP_SUBDIR BACKUP Cloud subfolder for per-host backups and Mackup path= (directory= in ~/.mackup.cfg names the mackup/ subfolder)
SSR_ALLOW_CONF_OVERWRITE (unset) yes to apply a changed ~/.mackup.cfg without a TTY (after reviewing logged diff); needed for launchd when cloud path changes
SSR_BREW_UPGRADE true Run brew upgrade during sync
SSR_BREW_CLEANUP true Run brew cleanup after sync
SSR_SCAN_UNMANAGED_APPS true Scan for .app bundles not from brew/MAS
SSR_APP_DIRS /Applications:~/Applications Colon-separated dirs for unmanaged scan
SSR_SNAPSHOT_MACOS_PREFS true Snapshot macOS pref domains during sync
SSR_MACOS_PREF_DOMAINS (built-in set) Full override of snapshotted domains (space-separated)
SSR_MACOS_PREF_DOMAINS_EXTRA - Extra domains appended to defaults
SSR_PREFS_CONFLICT_DEFAULT accept Non-TTY pref conflict: accept or reject
SSR_ASSUME_YES false Auto-accept pref-snapshot conflicts on restore
SSR_DISABLE_GATEKEEPER false Run spctl --global-disable during restore (security trade-off)
SSR_OPEN_CASKS false Open each installed cask after restore
SSR_MACOS_DEFAULTS repo config/macos-defaults.sh Path to your own defaults script
SSR_LAUNCHD_LABEL de.surke.ssr.sync launchd job label
SSR_SCHEDULE_HOUR 9 Daily hour (0-23, local)
SSR_SCHEDULE_MINUTE 0 Daily minute
SSR_PREFIX $HOME/.local/bin Symlink install prefix for ssr
SSR_STATE_DIR $HOME/.local/state/ssr Internal state
SSR_LOG_DIR $HOME/.local/state/ssr/logs launchd logs

Cloud provider roots

Provider Resolved root
icloud ~/Library/Mobile Documents/com~apple~CloudDocs
dropbox ~/Library/CloudStorage/Dropbox* (fallback ~/Dropbox)
googledrive ~/Library/CloudStorage/GoogleDrive-*
onedrive ~/Library/CloudStorage/OneDrive-*
custom SSR_CLOUD_PATH (must be set)

See config/ssr.conf.example in the repo for the full annotated template.