A Git-integrated backup tool for macOS and Linux developers to manage dotfiles, packages, fonts, and app configs.
shallow-backup is a Python-based command-line tool that creates lightweight, structured backups of a developer's environment, including dotfiles, installed packages, fonts, and application configurations. It solves the problem of managing and synchronizing development setups across multiple machines by integrating with Git for version control and remote storage.
Developers on macOS and Linux who want to version-control their development environment, sync dotfiles across computers, or quickly restore their setup after a system change.
Unlike manual dotfile management or symlink-based solutions, shallow-backup offers a safe, automated, and Git-integrated approach with conditional backup logic, package manager support, and built-in secret detection, making environment backups both comprehensive and secure.
Git-integrated backup tool for macOS and Linux devs.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically initializes Git repositories in backup directories and supports submodules, enabling seamless remote storage and version history without extra setup, as detailed in the Git Integration section.
Allows custom bash expressions for environment-specific backups and reinstallations, offering fine-grained control for managing dotfiles across different systems, demonstrated in the config examples.
Exports installed packages from brew, pip, npm, cargo, and others, plus system applications and fonts, covering a wide range of development tools as listed in the 'What can I back up?' section.
Includes pre-commit hooks with trufflehog for secret detection, warns about config file permissions, and avoids destructive operations, prioritizing user protection as emphasized in the philosophy and warnings.
The JSON config supports bash expressions that can execute code, and if write permissions are misconfigured, it poses a security vulnerability, as explicitly warned in the README under conditional backup and installation.
Primarily optimized for macOS and Linux, with no mention of Windows package manager support or GUI integration, making it less suitable for heterogeneous or Windows-focused teams.
Synchronizing across computers requires users to manually handle Git merge conflicts, as described in the recipes, which can be cumbersome and error-prone for frequent environment changes.