30 open-source projects similar to geerlingguy/mac-dev-playbook, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Mac Dev Playbook alternative.
This project is a collection of automated hardening frameworks and Ansible roles designed to secure Linux systems, databases, SSH services, and web servers. It functions as a configuration framework that reduces the attack surface of Linux distributions through the automated enforcement of security policies. The collection provides specific security baselines for a variety of services, including MySQL databases, OpenSSH daemons, and web servers such as Nginx and Apache. These roles are designed to remove insecure defaults, enforce secure authentication methods, and align system configurations
This project is a comprehensive guide for configuring macOS for software engineering. It provides instructions for setting up a development environment, optimizing system settings, and enhancing the terminal experience to increase productivity. The guide focuses on several core areas of system customization, including the automation of software installation via Homebrew and the configuration of the Zsh shell with plugins, themes, and productivity aliases. It details a strategy for managing dotfiles using symbolic links to synchronize configuration files across multiple machines. Additional c
This is a Unix-based dotfiles repository providing a version-controlled collection of configuration files, environment variables, and shell aliases. Its primary purpose is to optimize macOS for software development by applying a curated set of system defaults and Zsh shell workflow enhancements. The project distinguishes itself through a comprehensive collection of macOS system defaults and specific configurations for the Zsh shell. It includes specialized Git workflow configurations and whitespace settings designed to standardize and accelerate version control operations across different env
Mackup is a dotfile backup manager and application settings backup tool designed to keep software configuration files consistent across multiple computers. It functions by copying home directory configuration files into a centralized storage folder for preservation, restoration, and synchronization. The utility utilizes a symbolic link manager to replace local configuration files with symlinks pointing to a synchronized folder, enabling real-time updates. It supports cloud storage integration, allowing these configuration directories to be mirrored to remote backends for cross-machine environ
This project is a shell configuration manager and Unix environment automator designed to organize shell settings and environment variables. It functions as a symlink-based dotfile deployer that maps versioned configuration files to the home directory to maintain a consistent system environment across different machines. The system employs a topic-based configuration loading model, grouping shell settings and environment scripts into discrete directories that load sequentially into the active shell. It further automates the setup of the command line interface by managing system paths and ensur
Hyprdots is a collection of configuration files and installation scripts designed to set up and customize a Hyprland tiling window manager environment on Linux. It provides an automated system for deploying a personalized desktop interface, including pre-configured themes, styles, and keyboard shortcuts. The project utilizes a modular dotfiles management workflow to organize system settings into discrete files for visual styles and keybindings. It employs shell-scripted installation to automate dependency deployment and uses symbolic links to map a centralized configuration directory to syste
This project is a cross-platform dotfiles collection and shell configuration framework designed to standardize development environments across Unix and Windows. It provides a set of version-controlled configuration files and environment settings for text editors, terminal multiplexers, and interactive command line interfaces. The collection functions as a symlink configuration manager, linking settings to the home directory to maintain synchronization across multiple machines. It includes a productivity framework for terminal workflow optimization, incorporating tools for fuzzy finding, direc
Laptop is a macOS development environment bootstrapper and system configuration script. It functions as a development toolchain automator designed to install and configure the programming languages, databases, and utilities required for web and mobile development. The project automates workstation provisioning by deploying a curated suite of software dependencies through a sequential shell execution process. It integrates package management and version-manager orchestration to handle multiple programming language runtimes and library dependencies. The system supports environment customizatio
Capistrano is a Ruby-based release manager and remote server orchestrator. It uses SSH to push code updates and execute a standardized sequence of deployment tasks across a fleet of remote machines. The tool distinguishes itself through role-based server targeting and parallel connection pooling, allowing users to assign functional labels to servers and execute commands across multiple machines simultaneously. It manages multiple environments by applying a single deployment definition across different stages through parameter-based mapping. The system provides a framework for remote task exe
XcodesApp is a desktop application and version manager for the Xcode integrated development environment. It functions as a macOS development tool that enables the installation, updating, and switching of multiple Xcode versions. The application automates the process of downloading and deploying specific software versions and metadata. It provides a metadata browser to view available releases, release notes, and operating system compatibility requirements. The tool manages the installation of platform runtimes and SDKs for iOS, macOS, watchOS, and tvOS. It allows users to select and toggle th
chezmoi is a command-line utility designed to manage and synchronize system configuration files across multiple machines. It uses a local Git repository as the single source of truth, allowing users to track, version, and distribute dotfiles while maintaining a consistent state across diverse operating systems and hardware architectures. The project distinguishes itself through a declarative reconciliation model that computes the difference between the current filesystem and the desired state defined in the repository. It features a robust templating engine that processes configuration files
Axiom is a cloud infrastructure orchestrator and distributed security scanning framework. It serves as a manager for deploying, snapshotting, and destroying disposable virtual machine fleets across multiple cloud providers and regions. The project distinguishes itself by automating the provisioning of vulnerability toolsets and security auditing software across these remote servers. It features a mechanism for distributing security scans by sharding target lists across a fleet of instances and aggregating the resulting data into unified files and HTML reports. The system covers a broad range
This project is a toolset for automated VPN installation, proxy server management, and server-side network throughput optimization. It provides a Shadowsocks proxy server manager used to deploy and configure proxy servers on virtual private servers. The system utilizes automated deployment scripts to handle the installation of encryption methods, ports, and passwords on remote servers. It includes a VPS network optimizer that activates BBR congestion control to reduce latency and increase throughput for high-bandwidth streaming. The software covers remote proxy configuration and client confi
Komodo is a self-hosted deployment manager and agentless software distributor designed to build application binaries and distribute them across a fleet of remote servers. It functions as a remote deployment orchestrator that manages the build and release process from a centralized control point. The system distinguishes itself by using a programmatic deployment pipeline, employing script logic rather than static configuration files to coordinate build and distribution sequences. It utilizes SSH for remote execution and binary synchronization, allowing the controller to push updates to target
Kubespray is an Ansible-based tool for deploying production-ready Kubernetes clusters on physical or virtual machines across various environments. It serves as an infrastructure provisioner and cluster deployer that automates the installation and configuration of cluster nodes. The project functions as a bare metal cluster orchestrator, allowing for the setup of Kubernetes on physical hardware without relying on a managed cloud provider. It includes specialized installers for configuring networking fabrics, pod communication plugins, and routing policies. The framework also manages the insta
Mina is a Git-based remote deployer and SSH deployment automation tool designed to manage application releases. It functions as a symlink-based release manager that clones source code from Git repositories directly onto servers and is specifically designed to handle Ruby project deployment and environment configuration. The system automates server updates by generating a single bash script locally and executing it over a single SSH session. This approach enables zero-downtime deployments by using timestamped release directories and updating a symbolic link to switch between active and previou
pyinfra is an agentless infrastructure automation framework that turns declarative Python code into idempotent shell commands to manage servers, containers, and local machines over SSH without requiring any pre-installed software on target hosts. It operates by comparing the desired state of a system against its current state, using a dry-run simulation mode to preview changes and a fact-based conditional execution engine to gather host attributes at runtime and control which operations run. The tool compiles Python operations into optimized shell commands and executes them in parallel across
Deployer is a PHP deployment tool and SSH-based deployment automator used to push applications to remote servers and automate the provisioning of hosting environments. It functions as a zero-downtime deployment manager that utilizes symbolic links to switch between application versions, ensuring continuous site availability. The system employs pre-defined deployment recipes tailored to the specific requirements of popular PHP web frameworks. This framework-specific automation allows for the execution of task sequences designed for particular software environments. The tool covers remote serv
Cloud-init is an automated server provisioning and instance initialization tool designed to configure virtual machines during the early boot process. It functions as a metadata provisioner that retrieves instance configuration data from cloud providers to set up network, storage, and user settings. The project provides a cross-distribution boot configuration layer that applies consistent system settings across different Linux distributions. It utilizes a modular provider abstraction to handle API differences between various cloud platforms and employs a staged boot execution model to ensure i
Dotbot is a dotfile installation manager and environment setup automator designed to deploy configuration files from a repository to a local system. It functions as a symlink deployment utility and templated configuration engine, using a combination of symbolic links and custom directives to synchronize settings across machines. The project enables the automation of dotfile deployment through a shell-based configuration bootstrapper. It supports the synchronization of application profiles and the rendering of dynamic configuration files from templates before they are deployed to the filesyste
Laravel Deployer is a command-line utility designed to automate the deployment of web applications built on the Laravel framework. It functions as a configuration-driven management system that synchronizes code across remote server environments and orchestrates the application release lifecycle. The tool utilizes secure shell protocols to execute remote commands and manage infrastructure, ensuring consistent environment setup through standardized templates. It maintains service continuity by deploying code to timestamped directories and performing atomic symlink switching, which allows the we
This project provides a functional package manager and a reproducible build system designed to ensure identical build inputs always produce the same outputs. It serves as the foundation for a declarative Linux distribution where the entire system state is defined in a configuration file, enabling predictable deployments and full-system rollbacks. The system uses a deterministic functional language and a lazy-evaluation expression engine to manage software dependencies and isolate build environments. It distinguishes itself through a content-addressable store that allows multiple versions of s
This project is a collection of scripts and configuration files designed to automate the deployment of developer toolsets, big data tools, and system-wide dotfiles. It serves as a provisioning system for installing languages, data analysis tools, and system dependencies across diverse programming stacks. The suite provides specialized automation for macOS developer onboarding and the setup of Python data science workflows. It includes dedicated installers for distributed processing engines like Spark and Hadoop, as well as environments for web and mobile development. The system covers a broa
This project is a step-by-step guide for setting up a complete programming environment on a new Mac. It walks through configuring Git with identity and credential caching, installing and managing software through the Homebrew package manager, and customizing the terminal with Oh My Zsh, fuzzy finders, and keyboard shortcuts. The guide also covers setting up JetBrains IDEs with shared key mappings and plugins, and installing development language runtimes for Node, Python, C++, Ruby, Go, and Java. The guide differentiates itself by providing a structured onboarding checklist that covers the ful
This project is a collection of guides and configurations for initializing a macOS development environment. It provides a systematic approach to installing programming languages, editors, and system tools to prepare a new Mac for coding from scratch. The setup focuses on automating the lifecycle of command line tools and applications through system package management. It emphasizes version-isolated language runtimes for Node.js and Python, allowing for the management of multiple versions and the creation of project-specific virtual environments to prevent dependency conflicts. The project co
Puphpet is a web-based infrastructure as code generator and local development environment orchestrator. It provides a graphical interface for defining and automating the setup of isolated virtual machine environments used for web development. The tool functions as a virtual machine environment builder that transforms user inputs into structured, declarative configuration models. It abstracts the complexity of infrastructure automation tools by mapping visual interface selections to configuration files. The system covers the generation of virtual machine configurations and the provisioning of
XcodesApp is a management utility for controlling Apple development toolsets. It serves as a version manager and runtime installer used to download, install, and switch between multiple versions of Xcode and their associated platform runtimes. The tool provides a way to browse available versions, release notes, and system compatibility requirements from official release channels. It utilizes accelerated connections to download specific versions of the development environment and its corresponding operating system runtimes and hardware variants. Users can assign a specific installed version a
Laragon is a portable web server suite and WAMP stack manager that provides a self-contained local development environment. It enables the bootstrapping of web applications through the orchestration of web servers, databases, and language runtimes on a single machine. The project is distinguished by its registry-free portable mode, allowing the entire development stack to be moved between drives or computers without re-installation. It features automated virtual host mapping and SSL certificate generation for local domains, as well as a local tunneling gateway to expose projects via public UR
This is a Unix dotfiles repository that provides a central store of configuration files to synchronize application settings and environment variables across different systems. It functions as a standardized development environment setup, offering a consistent profile for code editors, debuggers, and language runtimes across multiple machines. The repository includes specific configuration profiles for shell environments, Git identity and commit authorship, and SSH agent automation for secure credential management. It manages the loading of identity files and integrates system keychains to aut
Home Manager is a declarative framework for managing user-specific packages, dotfiles, and services. It serves as a tool for maintaining reproducible home directory setups and user environments across multiple machines using the Nix package manager. The system functions as a declarative dotfile manager, defining application configuration files from a central source to ensure consistency. It allows for the management of user-level software packages and the automation of background processes and services that start upon user login.