Installation
This guide covers the installation process for both macOS and Debian-based systems.
Prerequisites
macOS
- macOS 10.15 (Catalina) or later
- Command Line Tools for Xcode (will be installed automatically)
- Internet connection
Debian/Ubuntu
- Debian 11+ or Ubuntu 20.04+
- sudo privileges
- Internet connection
Installation Methods
Quick Install (Recommended)
The quickest way to get started is using the one-line installer:
macOS:
curl -fsSL https://raw.githubusercontent.com/this-is-tobi/dotfiles/main/setup/setup-osx.sh | bash
Debian/Ubuntu:
curl -fsSL https://raw.githubusercontent.com/this-is-tobi/dotfiles/main/setup/setup-debian.sh | bash
Manual Installation
If you prefer to review the scripts before running them:
- Clone the repository:
git clone https://github.com/this-is-tobi/dotfiles.git
cd dotfiles
- Run the setup script:
For macOS:
./setup/setup-osx.sh
For Debian/Ubuntu:
./setup/setup-debian.sh
Installation Options
Profiles
Install additional profiles based on your needs using the -p
flag:
# Single profile
./setup/setup-osx.sh -p devops
# Multiple profiles (comma-separated)
./setup/setup-osx.sh -p 'devops,secops,js'
# All profiles
./setup/setup-osx.sh -p 'base,ai,devops,go,js,secops'
Available profiles:
base
- Base packages and utilitiesai
- AI and machine learning toolsdevops
- DevOps tools (Docker, Kubernetes, Terraform, etc.)go
- Go development environmentjs
- JavaScript/Node.js development environmentsecops
- Security tools (scanners, secret management, etc.)extras
- Extra personal packages (macOS only)
Lite Mode
For minimal installations with only essential tools, use the -l
flag:
./setup/setup-osx.sh -l
./setup/setup-osx.sh -l -p devops # Lite mode with devops profile
Lite mode installs only packages marked with an "x" in the "Lite mode" column of the package tables.
Help
Display all available options:
./setup/setup-osx.sh -h
./setup/setup-debian.sh -h
What Gets Installed
Core Components
Both platforms install:
- oh-my-zsh - Zsh configuration framework with plugins
- CLI tools - Essential command-line utilities (curl, wget, jq, etc.)
- Git configuration - Custom
.gitconfig
template - Shell functions - Custom utility functions
- Completions - Auto-completion for various tools
- GitHub Copilot instructions - AI-assisted development guidelines
Platform-Specific
macOS:
- Homebrew package manager
- Homebrew Cask applications
- macOS-specific configurations
Debian/Ubuntu:
- WakeMeOps repository for modern packages
- apt package management
- Debian-specific system configurations
Post-Installation
1. Restart Your Shell
After installation, restart your shell or source the configuration:
exec zsh
# or
source ~/.zshrc
2. Configure Environment Variables
Edit the environment file to add your API keys and custom settings:
vim ~/.config/dotfiles/env.sh
Example configuration:
# Context7 API key for documentation access
export CONTEXT7_API_KEY="your_api_key_here"
# Add other custom environment variables
# export MY_VAR="value"
3. Review Installed Tools
List all custom functions:
lsfn
Check installed packages:
# macOS
brew list
# Debian
apt list --installed
4. Customize Dotfiles
The dotfiles are installed as templates. Customize them to your needs:
# Edit zsh configuration
vim ~/.zshrc
# Edit git configuration
vim ~/.gitconfig
# Edit VS Code settings
vim ~/.config/Code/User/settings.json
Troubleshooting
Permission Denied
If you encounter permission errors:
chmod +x setup/setup-*.sh
Homebrew Issues (macOS)
If Homebrew installation fails:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
WakeMeOps Repository Issues (Debian)
If package installation fails, verify the repository:
curl https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository | bash
oh-my-zsh Already Installed
If oh-my-zsh is already installed, the script will skip it. To reinstall:
rm -rf ~/.oh-my-zsh
# Run setup script again
Uninstallation
To remove installed configurations:
# Backup first!
./backup/backup-osx.sh # or backup-debian.sh
# Remove dotfiles
rm -rf ~/.zshrc ~/.gitconfig ~/.config/dotfiles
# Remove oh-my-zsh
rm -rf ~/.oh-my-zsh