An open API service indexing awesome lists of open source software.

https://github.com/marchenkovit/brewfile

One-command MacBook Pro M3 setup — Homebrew packages, casks, VS Code extensions, shell config, macOS defaults, kubectl contexts. Idempotent install.sh skips apps already installed manually.
https://github.com/marchenkovit/brewfile

apple-silicon automation aws brewfile devops dotfiles homebrew idempotent installer jetbrains kubernetes m3 mac-setup macbook macos setup sre terraform vscode zsh

Last synced: 17 days ago
JSON representation

One-command MacBook Pro M3 setup — Homebrew packages, casks, VS Code extensions, shell config, macOS defaults, kubectl contexts. Idempotent install.sh skips apps already installed manually.

Awesome Lists containing this project

README

          


Brewfile — MacBook Pro M3 one-command setup

# 🍺 MacBook Pro M3 Setup

[![CI](https://github.com/marchenkovit/Brewfile/actions/workflows/ci.yml/badge.svg)](https://github.com/marchenkovit/Brewfile/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Last Commit](https://img.shields.io/github/last-commit/marchenkovit/Brewfile)](https://github.com/marchenkovit/Brewfile/commits/main)
[![Stars](https://img.shields.io/github/stars/marchenkovit/Brewfile?style=social)](https://github.com/marchenkovit/Brewfile/stargazers)
[![Pages](https://img.shields.io/badge/docs-pages-blue?logo=github)](https://marchenkovit.github.io/Brewfile/)
[![macOS](https://img.shields.io/badge/macOS-M3-000000?logo=apple)](https://www.apple.com/macbook-pro/)
[![Shell: zsh](https://img.shields.io/badge/shell-zsh-89E051?logo=gnu-bash&logoColor=white)](https://www.zsh.org/)

Backup and restore for macOS development environment: Homebrew packages, shell config, app settings, macOS tweaks.

> One-command setup for a fresh MacBook — Homebrew (71 brews, 47 casks, 22 VS Code extensions), Oh My Zsh, AWS/git/VS Code configs, macOS defaults, EKS kubectl contexts. Idempotent install (skips apps already installed manually).

## Quick Install (one command)

```bash
git clone git@github.com:marchenkovit/Brewfile.git
cd Brewfile
chmod +x install.sh
./install.sh
```

This will automatically:
1. Install Homebrew
2. Install all packages (CLI tools, casks, VS Code extensions)
3. Install Oh My Zsh
4. Restore configs (zsh, aws, git, vscode, claude)
5. Apply macOS defaults (Finder, Dock, keyboard, screenshots)
6. Configure kubectl contexts for all EKS clusters

## Manual Install (step by step)

### 1. Install Homebrew

```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
```

### 2. Install Oh My Zsh

```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

### 3. Restore all packages

```bash
brew bundle --file=Brewfile
```

Includes:
- **CLI**: awscli, kubectl, helm, k9s, terraform, ansible, jq, yq, bat, eza, fzf, zoxide, btop, ripgrep, fd, tmux, lazygit, lazydocker, kubectx, stern, gh, mas, nmap, wget, pv, mc
- **Casks**: iTerm2, OpenLens, VS Code, JetBrains Mono Nerd Font, Docker, Firefox, Chrome, 1Password, Slack, Raycast, and ~40 more (see Brewfile)
- **VS Code extensions**: Terraform, Docker, Kubernetes, GitLens, Remote SSH, YAML, Chef, Ruby LSP

### 4. Restore configs

```bash
cp .zshrc ~/.zshrc
mkdir -p ~/.aws && cp aws/config ~/.aws/config
cp git/.gitconfig ~/.gitconfig
cp vscode/settings.json ~/Library/Application\ Support/Code/User/settings.json
mkdir -p ~/.claude && cp claude/settings.json ~/.claude/settings.json
source ~/.zshrc
```

### 5. Apply macOS defaults

```bash
chmod +x macos-defaults.sh
./macos-defaults.sh
```

### 6. Configure kubectl

```bash
aws configure # set Access Key, Secret Key
aws eks update-kubeconfig --region us-west-2 --name oregon
aws eks update-kubeconfig --region us-west-2 --name dev1
aws eks update-kubeconfig --region ca-central-1 --name canada
aws eks update-kubeconfig --region eu-west-2 --name london
aws eks update-kubeconfig --region ap-southeast-2 --name sydney
aws eks update-kubeconfig --region us-east-2 --name ohio
```

### 7. Install additional apps

See [apps.md](apps.md) for apps not available in Homebrew.

## Update configs

When you change any config locally, sync to repo:

```bash
./update.sh
```

This updates Brewfile, .zshrc, aws, git, vscode, claude configs and pushes to git.

## Structure

```
install.sh - Full automated setup
update.sh - Sync current configs to repo
macos-defaults.sh - macOS system preferences
.zshrc - Zsh config (aliases, plugins, oh-my-zsh)
Brewfile - Homebrew packages, casks, VS Code extensions
apps.md - Apps installed outside Homebrew
aws/config - AWS CLI profiles and regions
git/.gitconfig - Git settings (user, pull strategy)
vscode/settings.json - VS Code editor settings
claude/settings.json - Claude Code settings
```