A small dotfiles configuration optimized for personal DevOps workflows.
- Minimal: Only essential tools and configurations
- Fast: Quick shell startup (<0.5s)
- Simple: Easy to understand and maintain
- Platform-friendly: Works on macOS and Linux
- DevOps-focused: Tools for containers, cloud, IaC, and Kubernetes
- Version Control: Git with useful aliases and git-delta for better diffs
- Containers: Docker & Kubernetes (kubectl, helm, k9s)
- Infrastructure as Code: Terraform, Ansible
- Cloud CLIs: AWS, Azure, GCP (commented out by default)
- Productivity: fzf, bat, ripgrep, fd, zoxide, tig
- Shell: Pure ZSH with git-aware prompt (no oh-my-zsh)
- Git: Sensible defaults with helpful aliases
- Aliases: DevOps-focused shortcuts for git, kubectl, terraform, docker
- Editor: nano as default with editorconfig support
git clone https://github.com/jier/dotfiles.git ~/.dotfiles
cd ~/.dotfilesPreview what will be installed without making changes:
./install --dry-run./installThe installer will:
- Create symlinks for all config files
- Backup existing configs (if any)
- Create local config templates
- Optionally install Homebrew packages
Install Options:
./install- Normal installation./install --dry-runor./install -n- Preview changes without installing./install --helpor./install -h- Show help message
Edit these files with your personal settings:
# Required: Set your git identity
nano ~/.gitconfig_local
# Optional: Machine-specific settings
nano ~/.zshrc.localsource ~/.zshrc
# or restart your terminaldotfiles/
├── install # Smart installer with OS detection
├── install-apt.sh # APT installer for Debian/Ubuntu
├── Brewfile # Homebrew packages (macOS/Linux)
├── packages.apt # APT package reference (Debian/Ubuntu)
├── config/
│ ├── zshrc # ZSH configuration
│ ├── aliases # Shell aliases
│ ├── gitconfig # Git configuration
│ ├── gitignore # Global gitignore
│ ├── gitattributes # Git attributes
│ ├── ssh_config # SSH configuration
│ └── editorconfig # Editor configuration
└── README.md # This file
Edit Brewfile and uncomment or add packages you need:
# Uncomment cloud tools you use
brew "awscli"
# brew "azure-cli"
# brew "google-cloud-sdk"
# Add your own tools
brew "your-tool"Then install:
brew bundle --file=~/.dotfiles/BrewfileEdit ~/.aliases or add them to ~/.zshrc.local:
# In ~/.zshrc.local
alias myalias='my command'Use ~/.zshrc.local for machine-specific settings:
# AWS Profile
export AWS_PROFILE=production
# Custom kubeconfig
export KUBECONFIG=~/.kube/prod-config
# Company proxy
export HTTP_PROXY=http://proxy.company.com:8080g→ gitgs→ git statusgp→ git pushgl→ git pullglog→ git log --oneline --graph
k→ kubectlkgp→ kubectl get podskgs→ kubectl get serviceskl→ kubectl logskx→ kubectl exec -it
tf→ terraformtfi→ terraform inittfp→ terraform plantfa→ terraform apply
d→ dockerdc→ docker-composedps→ docker psdex→ docker exec -it
z <partial-name>→ Jump to frequently used directories (zoxide)Ctrl-T→ Fuzzy find files (fzf)Alt-C→ Fuzzy find directories (fzf)
- Better diffs with git-delta
- Useful aliases (see
git config --get-regexp alias) - Global gitignore for common files
- Tab completion for all tools
- Case-insensitive matching
- History-based suggestions
cd ~/.dotfiles
git pull
./install # Re-run to update symlinks# Remove symlinks
rm ~/.zshrc ~/.aliases ~/.gitconfig ~/.gitignore_global ~/.gitattributes_global ~/.editorconfig
# Restore backups (if you want)
mv ~/.zshrc.backup ~/.zshrc
mv ~/.gitconfig.backup ~/.gitconfig
# ... etc- macOS 10.15+ or Linux
- ZSH (usually pre-installed)
- Package manager: Homebrew (macOS/Linux) or APT (Debian/Ubuntu)
This dotfiles setup supports multiple platforms with automatic detection:
Recommended: Use Homebrew (installed by default on modern macOS)
# If Homebrew is not installed:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Then run the installer:
./installThe installer will use the Brewfile to install packages, including the
macOS-only application casks.
Option 1: Install Homebrew on Linux (works on most distributions)
# Install Homebrew for Linux:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Then run the installer:
./installThe installer will use the formulae in the Brewfile and skip macOS-only
application casks.
Option 2: Use the native APT installer
# Run the installer:
./install
# When prompted, choose to install via APT
# Or run directly:
./install-apt.shThe install-apt.sh script will:
- Install packages from Ubuntu/Debian repositories
- Add necessary third-party repositories (GitHub CLI, Kubernetes, HashiCorp, etc.)
- Download and install binary releases where needed (k9s, git-delta, etc.)
- Create proper symlinks for Ubuntu package names (batcat → bat, fdfind → fd)
For other distributions (Fedora, Arch, etc.):
- Recommended: Install Homebrew for Linux (easiest)
- Manual: Use
packages.aptas a reference for package names - Adapt: Create your own package list for your package manager
- Brewfile: Homebrew packages (macOS and Linux with Homebrew)
- packages.apt: Reference list for Debian/Ubuntu packages
- install-apt.sh: Automated installer for Debian/Ubuntu systems
MIT - Use freely!
Pull requests and pushes run ShellCheck against the Bash installers, parse the Zsh configuration, and execute the installer in dry-run mode on Linux and macOS.
Simplified from sobolevn/dotfiles with focus on DevOps workflows.
