set-me-up

Automate your macOS and Debian development environment setup with dotfiles and modular installation scripts.

Why set-me-up?

Simplify your development environment setup and maintenance with powerful automation features

Modular Architecture

Install only what you need using independent modules like base, app_store, casks, and language-specific setups (php, ruby, node).

Dotfile Management

Uses thoughtbot's rcm for intelligent dotfile symlinking. Organize configurations by tags and override defaults easily.

Homebrew Integration

Seamlessly integrates with Homebrew and Mac App Store via brewfile bundles for streamlined application installation.

Customizable Hooks

Add before.sh and after.sh hooks to any module for custom pre and post-installation scripts tailored to your needs.

Blueprint Template

Fork the blueprint repository to create your own personalized setup with all your configurations and customizations.

Quick Deployment

One command installation gets you up and running quickly. Perfect for setting up new machines or rebuilding existing ones.

What's Included?

set-me-up provides everything you need to automate your development environment

Core Tools

Automated Homebrew installation, dotfile symlinking via rcm, and shell configuration management

Development Environments

PHP, Ruby, Node.js, Python modules with version managers and common packages

Applications

Mac App Store apps and Homebrew casks for all your GUI applications

Customization

rcm tags, module hooks, and full control over what gets installed

Quick Start

Get your development environment set up in minutes

# Install set-me-up
bash <(curl -s -L https://raw.githubusercontent.com/dotbrains/set-me-up-installer/main/install.sh)

# Provision base module (dotfiles + Homebrew)
smu --provision --module base

# Add more modules as needed
smu --provision --module app_store --module casks --module php --no-base

# List symlinked dotfiles
smu --lsrc

# Update dotfiles
smu --rcup

Built for Flexibility

Designed with customization and extensibility in mind

Tag-Based Organization

Use rcm tags to organize dotfiles by environment, machine, or purpose. Override default configs without touching the originals.

Module System

Each module is an independent bash script. Mix and match only what you need, or create your own custom modules.

Open Source

Fully open source and documented. Fork the blueprint repo, customize to your heart's content, and share with your team.