Skip to content

Machine bootstrapping tool with a focus on sensible defaults, conventions, and avoidance of vendoring

License

Notifications You must be signed in to change notification settings

maxfierke/mstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

55c7d05 · Feb 7, 2025
Feb 7, 2025
Mar 1, 2023
Dec 21, 2024
Feb 7, 2025
Oct 16, 2024
May 11, 2024
Jan 10, 2019
Oct 15, 2024
Oct 4, 2023
Jan 17, 2025
Feb 7, 2025
Jan 10, 2019
Jan 17, 2025
Jan 17, 2025
Aug 20, 2020
Apr 17, 2022
Apr 16, 2024
Feb 7, 2025
May 20, 2022
Jan 17, 2025
Feb 7, 2025

Repository files navigation

mstrap

mstrap (short for "machine bootstrap") is a tool for provisioning and managing a development environment. It is a convention-over-configuration tool, which aims to leverage existing ecosystem tools to provide a one-command provisioning experience for a new machine.

The approach is inspired by the chirpstrap tool built at Iora Health, but is built and maintained in my personal capacity and is not associated with Iora Health.

Aims

  • Run on a new machine with no development tools installed
  • Leverage existing ecosystem tools, when possible
    • Avoid vendoring or overriding tool defaults
  • Hook into standard scripts-to-rule-them-all
    • Currently hooks into a project's script/bootstrap and script/setup

mstrap is wholly centered around proving a no-runtime-dependency (other than normal system libraries) approach and will always remain a tool designed around being possible to run immediately after taking a new machine out of its box, and finishing the OS setup.

Installation & Usage

Please refer to the documentation site for documentation

Development

  1. Install dependencies
  • macOS: brew install crystal meson pcre2 openssl
    • Crystal < 1.15: you'll also need libevent
  • Debian/Ubuntu:
    1. Install Crystal
    2. sudo apt install meson libpcre2-dev libssl-dev patchelf
    • Crystal < 1.15: you'll also need libevent-dev
  1. git clone git@github.com:maxfierke/mstrap.git
  2. make
  3. bin/mstrap will be created

Contributing

  1. Fork it (https://github.com/maxfierke/mstrap/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors