# yadm-dev/yadm

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yadm-dev-yadm).**

6,166 stars · 196 forks · Python · gpl-3.0

## Links

- GitHub: https://github.com/yadm-dev/yadm
- Homepage: https://yadm.io/
- awesome-repositories: https://awesome-repositories.com/repository/yadm-dev-yadm.md

## Topics

`bash` `bootstrap` `commandline` `dot-files` `dotfile-management` `dotfile-manager` `dotfiles` `dotfiles-automation` `dotfiles-linux` `dotfiles-macos` `encryption` `git` `gpg` `hooks` `jinja2` `manager` `multiple-machines` `symlink-alternative` `template` `yadm`

## Tags

### DevOps & Infrastructure

- [Dotfile Managers](https://awesome-repositories.com/f/devops-infrastructure/git-integration-management/dotfile-managers.md) — Wraps Git commands to operate on the home directory as the working tree for managing configuration files.
- [Git-Wrapped Dotfiles Management](https://awesome-repositories.com/f/devops-infrastructure/git-integration-management/dotfile-managers/git-wrapped-dotfiles-management.md) — Wraps Git commands to operate on the home directory as the working tree for managing configuration files.
- [Submodule Initialization](https://awesome-repositories.com/f/devops-infrastructure/git-based-deployment/git-submodule-integration/submodule-initialization.md) — Clones and sets up Git submodules linked to the dotfiles repository after a fresh checkout.
- [Pre/Post Command Hooks](https://awesome-repositories.com/f/devops-infrastructure/server-side-hook-enforcement/custom-script-executions/pre-post-command-hooks.md) — Executes custom scripts before or after any supported command, with the ability to abort on failure.

### Content Management & Publishing

- [System Configuration Templates](https://awesome-repositories.com/f/content-management-publishing/text-template-processing/system-configuration-templates.md) — Generates configuration files by merging templates with system-specific variables like hostname and OS.

### Data & Databases

- [Dotfile Environment Restorations](https://awesome-repositories.com/f/data-databases/data-restoration-tools/environment-state-restoration/dotfile-environment-restorations.md) — Restores all tracked dotfiles from a Git repository to rebuild a computing environment. ([source](https://yadm.io/docs/overview))

### Development Tools & Productivity

- [Secret Encryption for Dotfiles](https://awesome-repositories.com/f/development-tools-productivity/dotfile-managers/secret-encryption-for-dotfiles.md) — Provides built-in encryption and decryption of sensitive files stored in dotfiles repositories.
- [Dotfile](https://awesome-repositories.com/f/development-tools-productivity/git-workflows/dotfile.md) — Wraps standard Git commands to operate on dotfiles with hooks and submodule support.
- [Per-Operating System Configurations](https://awesome-repositories.com/f/development-tools-productivity/per-operating-system-configurations.md) — Creates separate configuration files for different operating systems using naming conventions. ([source](https://cdn.jsdelivr.net/gh/yadm-dev/yadm@develop/README.md))
- [Bootstrap-Aware Cloning](https://awesome-repositories.com/f/development-tools-productivity/repository-cloning-tools/bootstrap-aware-cloning.md) — Clones a remote repository and automatically runs a bootstrap script on success. ([source](https://yadm.io/docs/common_commands))
- [Setup Automation Scripts](https://awesome-repositories.com/f/development-tools-productivity/shell-scripting-libraries/setup-automation-scripts.md) — Automatically runs a user-defined bootstrap script after cloning the dotfiles repository.
- [System Bootstrap Automations](https://awesome-repositories.com/f/development-tools-productivity/system-bootstrap-automations.md) — Runs a user-defined script automatically after cloning dotfiles to set up software, configurations, and dependencies on a fresh machine. ([source](https://yadm.io/docs/bootstrap))
- [Conditional Content Blocks](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/templating-engines/dynamic-templates/content-templates/conditional-content-blocks.md) — Provides conditional inclusion and exclusion of template blocks based on variable equality tests. ([source](https://yadm.io/docs/templates))
- [Template Engines](https://awesome-repositories.com/f/development-tools-productivity/template-engines.md) — Generates configuration files by merging template content with system-specific variables like hostname and OS.
- [Pre-Post Command Hooks](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration/command-interception-hooks/command-serialization-hooks/pre-post-command-hooks.md) — Runs custom scripts before or after any supported command, with the ability to abort on failure. ([source](https://yadm.io/))

### Operating Systems & Systems Programming

- [Alternate File Selection by System Attributes](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-system-utilities/file-metadata-inspection/metadata-preservation-engines/metadata-extraction/file-system-attributes/alternate-file-selection-by-system-attributes.md) — Selects different file versions based on system attributes like OS or hostname using naming conventions.
- [Host Data Template Generators](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-systems/file-template-generators/host-data-template-generators.md) — Generates configuration files by merging templates with system-specific variables like hostname and OS. ([source](https://yadm.io/docs/templates))
- [External File Inclusions](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-systems/file-template-generators/external-file-inclusions.md) — Embeds content from external files into templates with support for variable substitution. ([source](https://yadm.io/docs/templates))

### Security & Cryptography

- [Cross-Machine Configuration Synchronization](https://awesome-repositories.com/f/security-cryptography/configuration-syncing/cross-machine-configuration-synchronization.md) — Coordinates dotfiles between multiple computers so changes made on one machine are reflected on others. ([source](https://yadm.io/docs/overview))
- [Pattern-Based File Encryptions](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption/media-encryption/stream-encryption-and-decryption/pattern-based-file-encryptions.md) — Encrypts and decrypts files matching patterns in a configuration file for secure storage in the repository.
- [Pattern-Based File Encryption](https://awesome-repositories.com/f/security-cryptography/secret-encryption/pattern-based-file-encryption.md) — Encrypts sensitive files matching patterns in a configuration file and decrypts them on checkout.

### Software Engineering & Architecture

- [System Condition File Selection](https://awesome-repositories.com/f/software-engineering-architecture/conditional-build-configuration/conditional-configuration-blocks/system-condition-file-selection.md) — Automatically links the correct file version based on system conditions like OS or hostname. ([source](https://yadm.io/docs/alternates))
- [System-Attribute-Based Selections](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/file/system-attribute-based-selections.md) — Selects different file versions based on system attributes like OS or hostname using naming conventions.
- [Hook-Based Extension Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/hook-based-extension-frameworks.md) — Runs custom scripts before or after any supported command, with the ability to abort on failure.

### System Administration & Monitoring

- [Bootstrapping Scripts](https://awesome-repositories.com/f/system-administration-monitoring/instance-configuration-managers/bootstrapping-scripts.md) — Runs a user-defined bootstrap script automatically after cloning the dotfiles repository.
- [Dotfile System Restorations](https://awesome-repositories.com/f/system-administration-monitoring/system-restoration/dotfile-system-restorations.md) — Recreates a computing environment by restoring tracked dotfiles from a Git repository. ([source](https://yadm.io/docs/overview))
- [System Attribute Overrides](https://awesome-repositories.com/f/system-administration-monitoring/cost-attribution-overrides/identity-attribute-overrides/system-attribute-overrides.md) — Manually overrides system attributes like OS or hostname to control alternate file selection. ([source](https://yadm.io/docs/alternates))
- [Conditional Bootstrap Steps](https://awesome-repositories.com/f/system-administration-monitoring/instance-configuration-managers/bootstrapping-scripts/conditional-bootstrap-steps.md) — Runs separate bootstrap scripts per system using the alternate files system for conditional logic. ([source](https://yadm.io/docs/bootstrap))
- [Symbolic Link Utilities](https://awesome-repositories.com/f/system-administration-monitoring/symbolic-link-utilities.md) — Creates symlinks for files following alternate naming rules to adapt configurations per system.

### Web Development

- [Template Data Injection](https://awesome-repositories.com/f/web-development/template-data-binding/template-data-injection.md) — Injects system attributes like OS, hostname, and architecture as variables into template files. ([source](https://yadm.io/docs/templates))

### Programming Languages & Runtimes

- [Host Class Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/class-creation-customization/host-class-definitions.md) — Assigns custom class labels to machines for conditional file selection during dotfiles deployment. ([source](https://yadm.io/docs/alternates))
