First thing to run on a new MacBook and every morning thereafter to keep it up to date.
A fresh install of macOS is ideal, but not required.
- Your MacBook must be running macOS 10.15 (Catalina) or greater.
- You must have admin privileges on your MacBook.
- You must have an Apple ID that has accepted the developer agreement, which you can do for free here: https://developer.apple.com/account/
- A solid Internet connection at least for the first run since Xcode will be installed.
-
Install all system updates (Apple Menu > System Preferences... > Software Update).
-
Open up a Terminal session (Command + Space for Spotlight Search and type "Terminal")
-
Run this command:
curl -sL https://raw.githubusercontent.com/dpwolfe/good-morning/master/good-morning.sh | bash
On the first run, it sets up a new MacBook with a list of commonly installed apps and opinionated system settings. It's automated, not unattended. If you are a power user, you'll probably like 95% of the system settings, which makes it well worth the trouble of undoing a few that are not to your liking. Change the ones you don't like afterwards and feel free to open issues for feedback.
- Xcode latest, plus the command line tools and for Mojave installs the C headers that were no longer present by default. Catalina does not have this problem.
- Node Version Manager (nvm) with latest Node.js and latest LTS of Node.js
- Homebrew, installing an opinionated number of popular used apps and utilities.
- Includes: Microsoft Office, Docker, Visual Studio Code, Slack, Skype, Minikube + VirtualBox, Wireshark, Postman, iTerm2, Charles, TablePlus
- A new SSH key and GPG key, walking you through their creation and the steps to add them to GitHub.
- Primes your .bash_profile with references to dotfiles containing aliases, git bash completion,
environment variables, paths, etc.
- Feel free to bring your own dotfiles after the first run.
- Update Node Version Manager (nvm)
- Update you to the latest Node.js and latest LTS of Node.js with nvm
- Simple way to discover when a new Node.js version releases.
- Globally installed packages are automatically re-installed into new Node.js versions.
- The version that is immediately before any next version being installed will be uninstalled automatically. That only happens during an upgrade. Installs/re-installs of older versions are untouched.
- Update npm and globally installed node_modules in the latest Node.js and Node.js LTS.
- Fix file and directory ownership to be yours where recommended by Homebrew or as I discovered through trial and error.
- Update all Applications installed via Homebrew in addition to brew formulas.
- Update Xcode, uninstalling the version immediately prior. This is similar to how Node.js upgrades are done.
- You are only prompted if your Xcode version is lower than the last version supported on Catalina.
- Update system Ruby gems.
- Clean installer file caches, freeing up disk space.
- Apply/re-apply workarounds needed to keep the latest tools, apps or macOS version working in harmony.