Installation
Installation
Section titled “Installation”This guide covers different ways to install the dotfiles management system.
Quick Install (Recommended)
Section titled “Quick Install (Recommended)”The fastest way to get started is using the bootstrap script:
curl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bashThis will:
- Detect your operating system and architecture
- Install Git (if not present)
- Install Go 1.23.6 (if not present)
- Clone the repository to
~/.dotfiles - Build the dotfiles CLI
- Run the installation
Manual Installation
Section titled “Manual Installation”Prerequisites
Section titled “Prerequisites”- Git - Version control system
- Go - Version 1.23 or later
- Bash - Version 4.0 or later
Step 1: Clone the Repository
Section titled “Step 1: Clone the Repository”git clone https://github.com/garygentry/dotfiles.git ~/.dotfilescd ~/.dotfilesStep 2: Build the CLI
Section titled “Step 2: Build the CLI”go build -o bin/dotfiles .Step 3: Run Installation
Section titled “Step 3: Run Installation”./bin/dotfiles installPlatform-Specific Notes
Section titled “Platform-Specific Notes”The bootstrap script will use Homebrew to install dependencies if available. If Homebrew is not installed, it will install Go from the official tarball.
# Install Homebrew first (optional but recommended)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Then run bootstrapcurl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bashUbuntu/Debian
Section titled “Ubuntu/Debian”The bootstrap script will use apt to install system packages. You may need sudo privileges for system package installation.
# Ensure system is up to datesudo apt update && sudo apt upgrade -y
# Run bootstrapcurl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bashArch Linux
Section titled “Arch Linux”The bootstrap script will use pacman to install system packages.
# Update systemsudo pacman -Syu
# Run bootstrapcurl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bashConfiguration
Section titled “Configuration”Environment Variables
Section titled “Environment Variables”You can customize the installation by setting environment variables before running the bootstrap script:
# Custom installation directoryexport DOTFILES_DIR="$HOME/my-dotfiles"
# Custom repository URLexport DOTFILES_REPO="https://github.com/<your-fork>/dotfiles.git"
# Custom Go versionexport GO_VERSION="1.23.6"
# Run bootstrapcurl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bashCustom Profile
Section titled “Custom Profile”To install a specific profile during bootstrap:
curl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bash -s -- --profile minimalContent Overlay
Section titled “Content Overlay”The engine is generic; your personal identity, secrets choice, and any custom
profiles/modules live in an optional content overlay directory that is deep-merged
over the repo. Point the bootstrap script at your content repo and it will clone it and
persist DOTFILES_CONTENT_DIR for you:
# Materialize a content overlay from your own repo during bootstrapcurl -sfL https://raw.githubusercontent.com/garygentry/dotfiles/main/bootstrap.sh | bash -s -- \ --content-repo https://github.com/you/my-dotfiles.gitOr use an already-cloned overlay by exporting the directory before installing:
export DOTFILES_CONTENT_DIR="$HOME/my-dotfiles"The --content-* flags (--content-repo, --content-ref, --content-path,
--content-dir, --content-auth-cmd, --no-persist-content-dir) are bootstrap
flags, not dotfiles subcommand flags. See the Content Overlay guide
for the full model, private-repo auth, and layout.
Verification
Section titled “Verification”After installation, verify the CLI is working:
# Check version~/.dotfiles/bin/dotfiles --version
# List available modules~/.dotfiles/bin/dotfiles list
# View help~/.dotfiles/bin/dotfiles --helpAdding to PATH
Section titled “Adding to PATH”For easier access, add the dotfiles binary to your PATH:
# Add to your shell rc file (~/.zshrc, ~/.bashrc, etc.)export PATH="$HOME/.dotfiles/bin:$PATH"
# Reload shellsource ~/.zshrc # or ~/.bashrcThen you can run:
dotfiles installdotfiles listUninstallation
Section titled “Uninstallation”To remove the dotfiles system:
# Remove the repositoryrm -rf ~/.dotfiles
# Remove state directoryrm -rf ~/.dotfiles/.state
# Manually remove any symlinked configuration files if desiredNote: This does not uninstall packages or tools installed by modules. You’ll need to remove those manually if desired.
Next Steps
Section titled “Next Steps”- Quick Start Guide - Get started with common tasks
- Creating Modules - Build and extend modules
- CLI Reference - Full command documentation