7dabcdd71e
- Revised the introduction to emphasize the workflow of the `ssr` tool. - Reformatted the backup and restore commands into a table for better readability. - Enhanced the documentation on installation and configuration steps. - Clarified the requirements section and streamlined the installation instructions. - Added a quick reference section for CLI commands to improve user accessibility.
88 lines
3.4 KiB
Markdown
88 lines
3.4 KiB
Markdown
# 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/osurke/system-sync-restore/wiki](https://git.surke.de/osurke/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/osurke/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/osurke/system-sync-restore/wiki/Quick-start), [Backup-structure-and-sync](https://git.surke.de/osurke/system-sync-restore/wiki/Backup-structure-and-sync).
|
|
|
|
---
|
|
|
|
## Wiki index
|
|
|
|
| Topic | Wiki |
|
|
|--------|------|
|
|
| Install & first steps | [Quick-start](https://git.surke.de/osurke/system-sync-restore/wiki/Quick-start) |
|
|
| Command list | [Commands](https://git.surke.de/osurke/system-sync-restore/wiki/Commands) |
|
|
| Cloud layout, unmanaged apps, macOS pref snapshots | [Backup-structure-and-sync](https://git.surke.de/osurke/system-sync-restore/wiki/Backup-structure-and-sync) |
|
|
| `ssr.conf` and cloud paths | [Configuration-reference](https://git.surke.de/osurke/system-sync-restore/wiki/Configuration-reference) |
|
|
| launchd, logs, `ssr update` | [Scheduling-logging-and-updates](https://git.surke.de/osurke/system-sync-restore/wiki/Scheduling-logging-and-updates) |
|
|
| Tab completions | [Shell-completions](https://git.surke.de/osurke/system-sync-restore/wiki/Shell-completions) |
|
|
| Security, uninstall, legacy scripts | [Security-Uninstall-and-Migration](https://git.surke.de/osurke/system-sync-restore/wiki/Security-Uninstall-and-Migration) |
|
|
| Repo tree | [Repository-layout](https://git.surke.de/osurke/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/osurke/system-sync-restore.wiki.git
|
|
```
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
MIT — see [LICENSE](LICENSE).
|