OS Genesis 🌏 🧬 πŸ— πŸ’»

The easy and predictable way to setup and manage a Linux dev environment

View project on GitHub

About

The point of this project is to manage my own local infrastructure as code.

I can list and change the packages installed on my Linux machines using commands here, including install Python and Node with APT.

This means I can setup a new machine easily, I can sync multiple Linux machines and I have my history in version control.

I hope others can benefit from this project by picking out pieces they need to run manually, or they can adapt the commands for their own automated scripts.

What about Ansible instead?

Well, yes I did try Ansible to manage my infrastructure as code. It works okay for local setup or even a few laptops.

But it was more hassle than it was worth and it was not transparent. Managing one or two laptops using this Genesis git repo works brilliantly for me. If you’re curious, see my Ansible experiment at github.com/MichaelCurrin/ansible-playbooks.

Features

  • Make it easy to setup and maintain a Linux dev environment.
  • Start from scratch such as a new laptop or a fresh of an OS.
  • Reproducible and consistent setup which is managed in the cloud (as a Github repo).
  • Intended for a Linux machine - running on Ubuntu, Debian, Linux Lite or similar.
  • Run manually or on a cron job to ensure packages are up to date.
  • Keep multiple machines in sync by updating the repo on Github.