scruth-config is a scripted framework that manages the configuration of ScruthSystems ™️
🚀 Its mission is to make it a delight to set up and maintain our family computers 😎!
Scruth == Scott + Ruth
Windows and MacOS systems are supported and in both cases only a single, zero-parameter command is needed to run it.
Overview:
- The script only relies on commands that are available out-of-the-box and so is runnable on fresh operating system installs or newly purchased computers.
- It is built around the chezmoi framework with 1password CLI for secrets management.
- The script installs minimal dependencies so that chezmoi (with 1password support) can execute.
- chezmoi is used to render configuration files as well as execute commands to configure and customize the system.
- The chezmoi configuration detects the host operating system, host/computer name and other environment information in order to determine what customizations to make.
- A public GitHub repo is used so that the repo may be cloned without authentication and using HTTPS; no secrets are published in the repo!
The setup.sh script is the entry point! In a shell, execute:
curl -sfL https://raw.githubusercontent.com/sbfeinstein/scruth-config/refs/heads/main/setup.sh | bashThe script installs minimal dependencies including homebrew for package management.
The setup.ps1 script is the entry point! In a regular (not elevated to Administrator) Windows Terminal, execute:
Invoke-Expression "& { $(Invoke-RestMethod https://raw.githubusercontent.com/sbfeinstein/scruth-config/refs/heads/main/setup.ps1) }"
They have quirks related to Unicode character handling and chains of command calls.
It is likely that the emojis output by scruth-config will not render correctly though functionality isn't affected.
For Windows systems, the scripts rely on the built-in WinGet for package management.