My personal dotfiles for macOS and Linux, managed with
chezmoi
and secured with
age encryption.
- Fork the repository's main branch.
- Follow the instructions below to set up your environment.
- Create a personal/me/private branch, and all personal data needs to be stored in this new branch. Then push this branch to your repo.
- Use your personal develop branch between your setups.
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --branch main --apply maxclax
- Install chezmoi:
sh -c "$(curl -fsLS get.chezmoi.io)"
- Initialize chezmoi:
chezmoi init --branch main https://github.com/maxclax/dotfiles.git
chezmoi cd ~
age-keygen | age --armor --passphrase > key.txt.age
Next use to add data in chezmoi.toml Encryption
Create required 1Password entries:
# Create secure note with git and GitHub configuration
op item create --category="Secure Note" --title="chezmoi-data" \
git-config-name="YOUR_NAME" \
git-config-email="YOUR_EMAIL" \
github-username="YOUR_GITHUB_USERNAME" \
github-email="YOUR_GITHUB_EMAIL" \
github-signing-key="YOUR_SSH_SIGNING_KEY" \
key-pub-key="YOUR_AGE_PUB_KEY" \
borg-encryption-passphrase="YOUR_BORG_ENCRYPTION_PASSPHRASE" \
atuin-username="YOUR_ATUIN_USERNAME" \
atuin-password="YOUR_ATUIN_PASSWORD" \
op signin
chezmoi apply
# Pull and apply updates
chezmoi update
# Edit configuration
chezmoi edit
# See pending changes
chezmoi diff
# Add new files
chezmoi add FILE
# Add new files with encryption
chezmoi add --encrypt FILE
- 🔒 Encrypted sensitive data using age
- 🔑 Secure credential management with 1Password
- 📝 Git configuration with SSH signing
- 🐳 Container setup (Podman/Docker)
- 🚀 Development environment configurations
- 📦 Package management
- 🔧 Various tool configurations
- 🗄️ Automated backups with Borgmatic
borgmatic init --encryption=repokey ssh://[email protected]:23/./backups/DIR
borgmatic --verbosity 1 --progress
# or with a specific configuration file
borgmatic --config ~/.config/borgmatic.d/git.yaml --dry-run --verbosity 1 --progress
borgmatic check
borgmatic extract --archive latest --destination /path/to/restore
borgmatic list
borgmatic prune
To manually log in to Atuin using credentials stored in 1Password, run the following command:
atuin login --username "$(op read op://Private/chezmoi-data/atuin-username)" --password "$(op read op://Private/chezmoi-data/atuin-password)"