# ssr — System Sync & Restore for macOS Reproducible macOS setup in one workflow: snapshot your Homebrew bundle and application configs to a cloud drive on a schedule, then rebuild a fresh Mac from that snapshot. | Action | Command | |--------|---------| | Backup | `ssr sync` — Brewfile + Mackup copy to cloud (no symlinks by default) | | Restore | `ssr restore` — Homebrew, Brewfile, Mackup, macOS defaults | | Schedule | `ssr schedule on` — daily `launchd` job | | Legacy Mackup symlinks | Run `ssr mackup unlink` once if you previously used `mackup link` | **Full documentation (configuration tables, pref snapshots, logs, security, migration):** **[Wiki → https://git.surke.de/os-mnemo/System-Sync-Restore/wiki](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki)** > Successor to `system_sync.sh` / `system_restore.sh`. Same intent, modernized modular tooling. --- ## Requirements - macOS (Apple Silicon or Intel), Bash 3.2+, network for Homebrew bootstrap - A cloud folder you control (iCloud is the default provider) --- ## Install ```bash git clone https://git.surke.de/os-mnemo/System-Sync-Restore.git ~/.ssr cd ~/.ssr ./install.sh ``` Symlinks `ssr` into `~/.local/bin` (override with `SSR_PREFIX`), seeds `~/.config/ssr/ssr.conf`, optionally enables daily sync. If `~/.local/bin` is not on `PATH`: ```bash export PATH="$HOME/.local/bin:$PATH" ``` --- ## CLI (quick reference) ```text ssr install Link binary, seed config, optional schedule ssr sync Backup → cloud ssr restore [Brewfile] Restore; Brewfile defaults to cloud copy ssr update [--dry-run] Git pull + launchd refresh when needed ssr schedule on|off Daily launchd job ssr config show|edit Config file ssr completions install zsh / bash / fish ssr status Summary ssr version ``` **New machine:** clone → `./install.sh` → `ssr restore`. Details: [Quick-start](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Quick-start), [Backup-structure-and-sync](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Backup-structure-and-sync). --- ## Wiki index | Topic | Wiki | |--------|------| | Install & first steps | [Quick-start](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Quick-start) | | Command list | [Commands](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Commands) | | Cloud layout, unmanaged apps, macOS pref snapshots | [Backup-structure-and-sync](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Backup-structure-and-sync) | | `ssr.conf` and cloud paths | [Configuration-reference](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Configuration-reference) | | launchd, logs, `ssr update` | [Scheduling-logging-and-updates](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Scheduling-logging-and-updates) | | Tab completions | [Shell-completions](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Shell-completions) | | Security, uninstall, legacy scripts | [Security-Uninstall-and-Migration](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Security-Uninstall-and-Migration) | | Repo tree | [Repository-layout](https://git.surke.de/os-mnemo/System-Sync-Restore/wiki/Repository-layout) | --- ## Contributing docs Edit the **wiki** repository (`System-Sync-Restore.wiki`) for user-facing guides; keep this README as the short landing page and link hub. Example clone: ```bash git clone https://git.surke.de/os-mnemo/System-Sync-Restore.wiki.git ``` --- ## License MIT — see [LICENSE](LICENSE).